Android Open Source - android_WallBox Saturate Frag






From Project

Back to project page android_WallBox.

License

The source code is released under:

Apache License

If you think the Android project android_WallBox listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/*
 * Copyright 2014 Jeremie Long//from  ww  w. j  a  va 2 s .  c o  m
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.lithidsw.wallbox.app.saturate;

import java.io.File;
import java.util.Calendar;

import android.app.ProgressDialog;
import android.app.WallpaperInfo;
import android.app.WallpaperManager;
import android.content.Context;
import android.content.SharedPreferences;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.Drawable;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.SeekBar;
import android.widget.TextView;

import com.lithidsw.wallbox.R;
import com.lithidsw.wallbox.utils.C;
import com.lithidsw.wallbox.utils.CustomDialogs;
import com.lithidsw.wallbox.utils.Utils;

public class SaturateFrag extends Fragment {

    SharedPreferences prefs;
    private Utils mUtils;
    private WallpaperManager wm;
    private ImageView image;
    private float seekerFl;
    SeekBar seek;

    Menu mMenu;

    TextView time_text;
    int hour;

    boolean isRunning = true;

    LinearLayout ll;
    FragmentActivity fa;

    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        fa = super.getActivity();
        ll = (LinearLayout) inflater.inflate(R.layout.saturate_frag, container, false);
        prefs = fa.getSharedPreferences(C.PREF, Context.MODE_PRIVATE);
        mUtils = new Utils(fa);
        wm = WallpaperManager.getInstance(fa);
        image = (ImageView) ll.findViewById(R.id.main_image);
        try {
            WallpaperInfo info = wm.getWallpaperInfo();
            info.toString();
            mUtils.sendToast(getResources().getString(R.string.live_wallpaper));
        } catch (NullPointerException ignore) {
        }
        time_text = (TextView) ll.findViewById(R.id.time_text);
        seek = (SeekBar) ll.findViewById(R.id.seeker);
        seek.setMax(23);
        Calendar cal = Calendar.getInstance();
        hour = cal.get(Calendar.HOUR_OF_DAY);
        time_text.setText(mUtils.getHour(hour));
        seek.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {

            @Override
            public void onProgressChanged(SeekBar v, int num, boolean isU) {
                if (!isRunning) {
                    time_text.setText(mUtils.getHour(num));
                    seekerFl = mUtils.getFloat(num);
                    Drawable d = mUtils.convertToGrayscale(wm.getDrawable(), seekerFl);
                    image.setImageDrawable(d);
                }
            }

            @Override
            public void onStartTrackingTouch(SeekBar arg0) {
                // TODO Auto-generated method stub
            }

            @Override
            public void onStopTrackingTouch(SeekBar arg0) {
                // TODO Auto-generated method stub
            }
        });

        if (!prefs.getBoolean(C.PREF_SATURATE_FIRST_RUN_MAIN, false)) {
            prefs.edit().putBoolean(C.PREF_SATURATE_FIRST_RUN_MAIN, true).commit();
            String title = getResources().getString(R.string.main_title_saturate);
            String message = getResources().getString(R.string.saturate_description);
            new CustomDialogs().openFirstDialog(fa, title, message);
        }
        setHasOptionsMenu(true);
        return ll;
    }

    private void updateViews() {
      Log.e("", "Size: " + mMenu.size());
        isRunning = prefs.getBoolean(C.PREF_SATURATE_START, false);
        seek.setEnabled(!isRunning);
        if (isRunning) {
            final File file = new File(fa.getFilesDir(), C.CACHEIMG);

            Thread thread = new Thread()
            {
                @Override
                public void run() {
                    final Bitmap myBitmap = BitmapFactory.decodeFile(file.toString());
                    fa.runOnUiThread(new Runnable() {
                        public void run() {
                            image.setImageBitmap(mUtils.toGrayscale(myBitmap, mUtils.h2F()));
                            seek.setProgress(hour);
                            if (mMenu.size() > 1) {
                                mMenu.getItem(0).setVisible(false);
                                mMenu.getItem(1).setVisible(true);  
                            }
                        }
                    });
                }
            };

            thread.start();
        } else {
            seek.setProgress(hour);
            if (mMenu.size() > 1) {
                mMenu.getItem(0).setVisible(true);
                mMenu.getItem(1).setVisible(false);  
            }
        }
    }

    private void setWallpaper() {
        if (isRunning) {
            stopRunning();
            updateViews();
        } else {
            startRunning();
        }
    }

    private void startRunning() {
        new WallpaperLoader().execute();
    }

    private void stopRunning() {
        mUtils.stopSaturatedAlarms();
        mUtils.sendToast(SaturateFrag.this.getResources().getString(R.string.stopped_sat));
        prefs.edit().putBoolean(C.PREF_SATURATE_START, false).commit();
    }

    @Override
    public void onPrepareOptionsMenu(Menu menu) {
        mMenu = menu;
        updateViews();
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case R.id.action_apply:
                setWallpaper();
                return true;
            case R.id.action_stop:
                setWallpaper();
                return true;
            default:
                return false;
        }
    }

    class WallpaperLoader extends AsyncTask<String, String, String> {

        ProgressDialog progressDialog;

        @Override
        protected void onPreExecute() {
            progressDialog = ProgressDialog.show(fa, "", fa.getResources().getString(R.string.set_wallpaper));
        }

        @Override
        protected String doInBackground(String... strings) {
            mUtils.setSaturatedWallpaper();
            return null;
        }

        @Override
        protected void onPostExecute(String count) {
            progressDialog.dismiss();
            mUtils.stopSaturatedAlarms();
            mUtils.setSaturatedAlarms();
            prefs.edit().putBoolean(C.PREF_SATURATE_START, true).commit();
            mUtils.sendToast(fa.getResources().getString(R.string.started_sat));
            updateViews();
        }
    }

}




Java Source Code List

com.lithidsw.wallbox.AboutActivity.java
com.lithidsw.wallbox.ActionReceiver.java
com.lithidsw.wallbox.MainActivity.java
com.lithidsw.wallbox.app.colorwall.ColorWallFrag.java
com.lithidsw.wallbox.app.randomizer.RandomizerFrag.java
com.lithidsw.wallbox.app.randomizer.adapter.RandomizerGridAdapter.java
com.lithidsw.wallbox.app.randomizer.db.DBHelper.java
com.lithidsw.wallbox.app.randomizer.db.TableHelper.java
com.lithidsw.wallbox.app.saturate.SaturateFrag.java
com.lithidsw.wallbox.app.theme.ThemeFragment.java
com.lithidsw.wallbox.app.theme.ThemesMainFragment.java
com.lithidsw.wallbox.app.wallsnap.WallSnapActivity.java
com.lithidsw.wallbox.app.wallsnap.WallSnapFragment.java
com.lithidsw.wallbox.app.wallsnap.WallpaperFragment.java
com.lithidsw.wallbox.app.wallsnap.adapters.WallpaperAdapter.java
com.lithidsw.wallbox.loader.ImageLoader.java
com.lithidsw.wallbox.loader.MemoryCache.java
com.lithidsw.wallbox.utils.BitMapBlur.java
com.lithidsw.wallbox.utils.C.java
com.lithidsw.wallbox.utils.ColorFilterGenerator.java
com.lithidsw.wallbox.utils.ContribDialog.java
com.lithidsw.wallbox.utils.CustomDialogs.java
com.lithidsw.wallbox.utils.DateBuilder.java
com.lithidsw.wallbox.utils.JsonHelper.java
com.lithidsw.wallbox.utils.MenuHelper.java
com.lithidsw.wallbox.utils.Utils.java