diff --git a/app/src/main/java/info/nightscout/androidaps/startupwizard/SetupWizardActivity.java b/app/src/main/java/info/nightscout/androidaps/startupwizard/SetupWizardActivity.java index f8e2330901..f22f48ca16 100644 --- a/app/src/main/java/info/nightscout/androidaps/startupwizard/SetupWizardActivity.java +++ b/app/src/main/java/info/nightscout/androidaps/startupwizard/SetupWizardActivity.java @@ -1,16 +1,11 @@ package info.nightscout.androidaps.startupwizard; -import android.annotation.SuppressLint; import android.content.Intent; -import android.support.v7.app.ActionBar; -import android.support.v7.app.AppCompatActivity; import android.os.Bundle; -import android.os.Handler; -import android.view.MotionEvent; +import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.Button; import android.widget.LinearLayout; -import android.widget.RadioGroup; import android.widget.TextView; import org.slf4j.Logger; @@ -26,173 +21,55 @@ import info.nightscout.androidaps.events.EventRefreshGui; import info.nightscout.utils.LocaleHelper; import info.nightscout.utils.SP; -import static info.nightscout.androidaps.startupwizard.SWItem.Type.RADIOBUTTON; -import static info.nightscout.androidaps.startupwizard.SWItem.Type.STRING; -import static info.nightscout.androidaps.startupwizard.SWItem.Type.URL; - -/** - * An example full-screen activity that shows and hides the system UI (i.e. - * status bar and navigation/system bar) with user interaction. - */ public class SetupWizardActivity extends AppCompatActivity { - /** - * Whether or not the system UI should be auto-hidden after - * {@link #AUTO_HIDE_DELAY_MILLIS} milliseconds. - */ - private static final boolean AUTO_HIDE = true; + private List labels = new ArrayList<>(); + private List comments = new ArrayList<>(); - /** - * If {@link #AUTO_HIDE} is set, the number of milliseconds to wait after - * user interaction before hiding the system UI. - */ - private static final int AUTO_HIDE_DELAY_MILLIS = 3000; - - /** - * Some older devices needs a small delay between UI widget updates - * and a change of the status and navigation bar. - */ - private static final int UI_ANIMATION_DELAY = 300; - private final Handler mHideHandler = new Handler(); - private View mContentView; - private LinearLayout linearLayout; - private TextView radioLabel; - private int numberOfButtons = 0; - private List labels = new ArrayList(); - private List comments = new ArrayList(); - - private LinearLayout layout; - private TextView textlabel; private TextView screenName; - private Button skipButton; - //logiing + + //logging private static Logger log = LoggerFactory.getLogger(SetupWizardActivity.class); private int currentWizardPage = 0; public static final String INTENT_MESSAGE = "WIZZARDPAGE"; - private final Runnable mHidePart2Runnable = new Runnable() { - @SuppressLint("InlinedApi") - @Override - public void run() { - // Delayed removal of status and navigation bar - - // Note that some of these constants are new as of API 16 (Jelly Bean) - // and API 19 (KitKat). It is safe to use them, as they are inlined - // at compile-time and do nothing on earlier devices. - mContentView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE - | View.SYSTEM_UI_FLAG_FULLSCREEN - | View.SYSTEM_UI_FLAG_LAYOUT_STABLE - | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY - | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION - | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION); - } - }; - private View mControlsView; - private final Runnable mShowPart2Runnable = new Runnable() { - @Override - public void run() { - // Delayed display of UI elements - ActionBar actionBar = getSupportActionBar(); - if (actionBar != null) { - actionBar.show(); - } - mControlsView.setVisibility(View.VISIBLE); - } - }; - private boolean mVisible; - private final Runnable mHideRunnable = new Runnable() { - @Override - public void run() { - hide(); - } - }; - /** - * Touch listener to use for in-layout UI controls to delay hiding the - * system UI. This is to prevent the jarring behavior of controls going away - * while interacting with activity UI. - */ - private final View.OnTouchListener mDelayHideTouchListener = new View.OnTouchListener() { - @Override - public boolean onTouch(View view, MotionEvent motionEvent) { - if (AUTO_HIDE) { - delayedHide(AUTO_HIDE_DELAY_MILLIS); - } - return false; - } - }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_setupwizard); - mVisible = true; - mControlsView = findViewById(R.id.fullscreen_content_controls); - mContentView = findViewById(R.id.fullscreen_content); - - - // Set up the user interaction to manually show or hide the system UI. - mContentView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - toggle(); - } - }); - - Intent intent = getIntent(); - int showPage = intent.getIntExtra(SetupWizardActivity.INTENT_MESSAGE,0); + int showPage = intent.getIntExtra(SetupWizardActivity.INTENT_MESSAGE, 0); SWDefinition swDefinition = SWDefinition.getInstance(); List screens = swDefinition.getScreens(); - if(screens.size() > 0 && showPage < screens.size()){ + if (screens.size() > 0 && showPage < screens.size()) { SWScreen currentScreen = screens.get(showPage); currentWizardPage = showPage; // show/hide prev/next buttons if we are at the beninning/end //showNextButton(showPage, screens.size()-1); - if(showPage == 0) + if (showPage == 0) ((Button) findViewById(R.id.previous_button)).setVisibility(View.GONE); //Set screen name screenName = (TextView) findViewById(R.id.fullscreen_content); screenName.setText(currentScreen.getHeader()); - //Display screen items in the order entered - linearLayout = (LinearLayout) findViewById(R.id.fullscreen_content_controls); - // is it skippable ? - if(currentScreen.skippable) { - //display skip button - skipButton = (Button) findViewById(R.id.skip_button); - } //Generate layout first LinearLayout layout = info.nightscout.androidaps.startupwizard.SWItem.generateLayout(this.findViewById(R.id.fullscreen_content_fields)); - for(int i = 0; i < currentScreen.items.size(); i++){ + for (int i = 0; i < currentScreen.items.size(); i++) { SWItem currentItem = currentScreen.items.get(i); - labels.add(i,currentItem.getLabel()); - comments.add(i,currentItem.getComment()); + labels.add(i, currentItem.getLabel()); + comments.add(i, currentItem.getComment()); currentItem.setOptions(labels, comments); currentItem.generateDialog(this.findViewById(R.id.fullscreen_content_fields), layout); } // Check if input isValid or screen is sckippable - if(currentScreen.validator.isValid() || currentScreen.skippable) { + if (currentScreen.validator.isValid() || currentScreen.skippable) { showNextButton(showPage, screens.size() - 1); - show(); } } - // Upon interacting with UI controls, delay any scheduled hide() - // operations to prevent the jarring behavior of controls going away - // while interacting with the UI. - findViewById(R.id.next_button).setOnTouchListener(mDelayHideTouchListener); - } - - @Override - protected void onPostCreate(Bundle savedInstanceState) { - super.onPostCreate(savedInstanceState); - - // Trigger the initial hide() shortly after the activity has been - // created, to briefly hint to the user that UI controls - // are available. - delayedHide(100); } @Override @@ -201,7 +78,7 @@ public class SetupWizardActivity extends AppCompatActivity { super.onResume(); // check is current locale is different from the one in preferences // log.debug("Current: "+LocaleHelper.getLanguage(this)+" preferences: "+SP.getString("language", "en")); - if(!LocaleHelper.getLanguage(this).equals(SP.getString("language", "en"))) { + if (!LocaleHelper.getLanguage(this).equals(SP.getString("language", "en"))) { // it is so change it in locale and restart SetupWizard // log.debug("Setting locale to: "+SP.getString("language", "en")+" and restarting"); LocaleHelper.setLocale(this, SP.getString(R.string.key_language, "en")); @@ -212,56 +89,12 @@ public class SetupWizardActivity extends AppCompatActivity { } } - private void toggle() { - if (mVisible) { - hide(); - } else { - show(); - } - } - - private void hide() { - // Hide UI first - ActionBar actionBar = getSupportActionBar(); - if (actionBar != null) { - actionBar.hide(); - } - mControlsView.setVisibility(View.GONE); - mVisible = false; - - // Schedule a runnable to remove the status and navigation bar after a delay - mHideHandler.removeCallbacks(mShowPart2Runnable); - mHideHandler.postDelayed(mHidePart2Runnable, UI_ANIMATION_DELAY); - } - - @SuppressLint("InlinedApi") - private void show() { - // Show the system bar - mContentView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN - | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION); - mVisible = true; - - // Schedule a runnable to display UI elements after a delay - mHideHandler.removeCallbacks(mHidePart2Runnable); - mHideHandler.postDelayed(mShowPart2Runnable, UI_ANIMATION_DELAY); - } - - /** - * Schedules a call to hide() in delay milliseconds, canceling any - * previously scheduled calls. - */ - private void delayedHide(int delayMillis) { - mHideHandler.removeCallbacks(mHideRunnable); - mHideHandler.postDelayed(mHideRunnable, delayMillis); - } - - private void showNextButton(int currentPage, int maxPages){ - if(currentPage == maxPages) { + private void showNextButton(int currentPage, int maxPages) { + if (currentPage == maxPages) { ((Button) findViewById(R.id.finish_button)).setVisibility(View.VISIBLE); ((Button) findViewById(R.id.next_button)).setVisibility(View.GONE); } else ((Button) findViewById(R.id.next_button)).setVisibility(View.VISIBLE); - show(); } public void showNextPage(View view) { @@ -272,7 +105,7 @@ public class SetupWizardActivity extends AppCompatActivity { public void showPreviousPage(View view) { Intent intent = new Intent(this, SetupWizardActivity.class); - if(currentWizardPage > 0) + if (currentWizardPage > 0) intent.putExtra(INTENT_MESSAGE, currentWizardPage - 1); else intent.putExtra(INTENT_MESSAGE, 0); @@ -280,7 +113,7 @@ public class SetupWizardActivity extends AppCompatActivity { } // Go back to overview - public void finishSetupWizard(View view){ + public void finishSetupWizard(View view) { Intent intent = new Intent(this, MainActivity.class); startActivity(intent); } diff --git a/app/src/main/res/layout/activity_setupwizard.xml b/app/src/main/res/layout/activity_setupwizard.xml index b2ba03a37f..025d85f335 100644 --- a/app/src/main/res/layout/activity_setupwizard.xml +++ b/app/src/main/res/layout/activity_setupwizard.xml @@ -13,7 +13,6 @@ android:id="@+id/fullscreen_content" android:layout_width="match_parent" android:layout_height="match_parent" - android:gravity="center" android:keepScreenOn="true" android:text="@string/dummy_content" android:textColor="#33b5e5" @@ -24,8 +23,7 @@ android:fitsSystemWindows. --> + android:layout_height="match_parent"> + android:orientation="horizontal">