/* * Copyright 2017 rootkiwi * * AN2Linux-client is licensed under GNU General Public License 3. * * See LICENSE for more details. */ package kiwi.root.an2linuxclient.activities; import android.app.DialogFragment; import android.app.FragmentManager; import android.graphics.PorterDuff; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.WindowManager; import android.widget.ProgressBar; import kiwi.root.an2linuxclient.R; import kiwi.root.an2linuxclient.fragments.CustomNotificationSettingsFragment; public class CustomNotificationSettingsActivity extends AppCompatActivity implements CustomNotificationSettingsFragment.TaskCallbacks { final String STATE_IS_TASK_DONE = "applicationListTaskIsDone"; private boolean applicationListTaskIsDone; private CustomProgressDialog progressDialog; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); final String TAG = "CustomNotificationSettingsFragment"; FragmentManager fm = getFragmentManager(); CustomNotificationSettingsFragment fragment = (CustomNotificationSettingsFragment) fm.findFragmentByTag(TAG); if (fragment == null) { fragment = new CustomNotificationSettingsFragment(); fm.beginTransaction().replace(android.R.id.content, fragment, TAG).commit(); } } @Override protected void onSaveInstanceState(Bundle outState) { outState.putBoolean(STATE_IS_TASK_DONE, applicationListTaskIsDone); super.onSaveInstanceState(outState); } @Override protected void onRestoreInstanceState(Bundle savedInstanceState) { super.onRestoreInstanceState(savedInstanceState); applicationListTaskIsDone = savedInstanceState.getBoolean(STATE_IS_TASK_DONE); if (!applicationListTaskIsDone){ displayProgressDialog(); } } @Override protected void onStop(){ super.onStop(); if (progressDialog != null){ progressDialog.dismiss(); } } private void displayProgressDialog(){ progressDialog = new CustomProgressDialog(); progressDialog.setCancelable(false); progressDialog.show(getFragmentManager(), "progressDialog"); } @Override public void onPreExecute(){ displayProgressDialog(); } @Override public void onPostExecute(){ if (progressDialog != null){ progressDialog.dismiss(); } applicationListTaskIsDone = true; } public static class CustomProgressDialog extends DialogFragment { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setStyle(DialogFragment.STYLE_NO_TITLE, R.style.ProgressDialogStyle); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.view_progressbar, container); getDialog().getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND); ((ProgressBar) view.findViewById(R.id.progressBar)) .getIndeterminateDrawable() .setColorFilter(getResources().getColor(R.color.colorAccent), PorterDuff.Mode.SRC_ATOP); return view; } } }