diff options
Diffstat (limited to 'app/src/main/java/fr/gouv/etalab/mastodon/fragments/SettingsFragment.java')
-rw-r--r-- | app/src/main/java/fr/gouv/etalab/mastodon/fragments/SettingsFragment.java | 166 |
1 files changed, 154 insertions, 12 deletions
diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/fragments/SettingsFragment.java b/app/src/main/java/fr/gouv/etalab/mastodon/fragments/SettingsFragment.java index 417cd744d..460d27e55 100644 --- a/app/src/main/java/fr/gouv/etalab/mastodon/fragments/SettingsFragment.java +++ b/app/src/main/java/fr/gouv/etalab/mastodon/fragments/SettingsFragment.java @@ -45,6 +45,7 @@ import android.widget.CompoundButton; import android.widget.EditText; import android.widget.ImageView; import android.widget.LinearLayout; +import android.widget.RadioGroup; import android.widget.SeekBar; import android.widget.Spinner; import android.widget.TextView; @@ -100,11 +101,129 @@ public class SettingsFragment extends Fragment { editor.apply(); } }); + + boolean display_content_after_fetch_more = sharedpreferences.getBoolean(Helper.SET_DISPLAY_CONTENT_AFTER_FM, true); + final CheckBox set_display_content_after_fetch_more = rootView.findViewById(R.id.set_display_content_after_fetch_more); + set_display_content_after_fetch_more.setChecked(display_content_after_fetch_more); + set_display_content_after_fetch_more.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + SharedPreferences.Editor editor = sharedpreferences.edit(); + editor.putBoolean(Helper.SET_DISPLAY_CONTENT_AFTER_FM, set_display_content_after_fetch_more.isChecked()); + editor.apply(); + } + }); + count1 = 0; count2 = 0; count3 = 0; count4 = 0; + + final Spinner battery_layout_spinner = rootView.findViewById(R.id.battery_layout_spinner); + ArrayAdapter<CharSequence> adapterBattery = ArrayAdapter.createFromResource(getContext(), + R.array.battery_profiles, android.R.layout.simple_spinner_item); + battery_layout_spinner.setAdapter(adapterBattery); + int positionSpinner = sharedpreferences.getInt(Helper.SET_BATTERY_PROFILE, Helper.BATTERY_PROFILE_NORMAL) -1; + battery_layout_spinner.setSelection(positionSpinner); + battery_layout_spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { + @Override + public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { + if( count2 > 0){ + SharedPreferences.Editor editor = sharedpreferences.edit(); + switch (position){ + case 0: + editor.putInt(Helper.SET_BATTERY_PROFILE, Helper.BATTERY_PROFILE_NORMAL); + editor.apply(); + break; + case 1: + editor.putInt(Helper.SET_BATTERY_PROFILE, Helper.BATTERY_PROFILE_MEDIUM); + editor.apply(); + break; + case 2: + editor.putInt(Helper.SET_BATTERY_PROFILE, Helper.BATTERY_PROFILE_LOW); + editor.apply(); + break; + } + Helper.changeBatteryProfile(context); + if( position < 2 ){ + try { + ((MainActivity) context).startSreaming(); + }catch (Exception ignored){ignored.printStackTrace();} + }else{ + context.sendBroadcast(new Intent("StopLiveNotificationService")); + } + }else { + count2++; + } + } + @Override + public void onNothingSelected(AdapterView<?> parent) { + + } + }); + + //Manage download of attachments + RadioGroup radioGroup = rootView.findViewById(R.id.set_attachment_group); + int attachmentAction = sharedpreferences.getInt(Helper.SET_ATTACHMENT_ACTION, Helper.ATTACHMENT_ALWAYS); + switch (attachmentAction){ + case Helper.ATTACHMENT_ALWAYS: + radioGroup.check(R.id.set_attachment_always); + break; + case Helper.ATTACHMENT_WIFI: + radioGroup.check(R.id.set_attachment_wifi); + break; + case Helper.ATTACHMENT_ASK: + radioGroup.check(R.id.set_attachment_ask); + break; + } + radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(RadioGroup group, int checkedId) { + switch(checkedId) { + case R.id.set_attachment_always: + SharedPreferences.Editor editor = sharedpreferences.edit(); + editor.putInt(Helper.SET_ATTACHMENT_ACTION, Helper.ATTACHMENT_ALWAYS); + editor.apply(); + break; + case R.id.set_attachment_wifi: + editor = sharedpreferences.edit(); + editor.putInt(Helper.SET_ATTACHMENT_ACTION, Helper.ATTACHMENT_WIFI); + editor.apply(); + break; + case R.id.set_attachment_ask: + editor = sharedpreferences.edit(); + editor.putInt(Helper.SET_ATTACHMENT_ACTION, Helper.ATTACHMENT_ASK); + editor.apply(); + break; + } + } + }); + + + boolean optimize_loading = sharedpreferences.getBoolean(Helper.SET_OPTIMIZE_LOADING, false); + final CheckBox set_optimize_loading = rootView.findViewById(R.id.set_optimize_loading); + set_optimize_loading.setChecked(optimize_loading); + + set_optimize_loading.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + SharedPreferences.Editor editor = sharedpreferences.edit(); + editor.putBoolean(Helper.SET_OPTIMIZE_LOADING, set_optimize_loading.isChecked()); + if( set_optimize_loading.isChecked()){ + editor.putInt(Helper.SET_ACCOUNTS_PER_PAGE, 10); + editor.putInt(Helper.SET_TOOTS_PER_PAGE, 10); + editor.putInt(Helper.SET_NOTIFICATIONS_PER_PAGE, 10); + }else { + editor.putInt(Helper.SET_ACCOUNTS_PER_PAGE, 40); + editor.putInt(Helper.SET_TOOTS_PER_PAGE, 40); + editor.putInt(Helper.SET_NOTIFICATIONS_PER_PAGE, 15); + } + editor.apply(); + } + }); + + boolean display_card = sharedpreferences.getBoolean(Helper.SET_DISPLAY_CARD, false); final CheckBox set_display_card = rootView.findViewById(R.id.set_display_card); @@ -323,19 +442,41 @@ public class SettingsFragment extends Fragment { }); boolean compact_mode = sharedpreferences.getBoolean(Helper.SET_COMPACT_MODE, false); - final CheckBox set_compact_mode = rootView.findViewById(R.id.set_compact_mode); - set_compact_mode.setChecked(compact_mode); - - set_compact_mode.setOnClickListener(new View.OnClickListener() { + boolean console_mode = sharedpreferences.getBoolean(Helper.SET_CONSOLE_MODE, false); + RadioGroup set_mode = rootView.findViewById(R.id.set_mode); + if( compact_mode){ + set_mode.check(R.id.set_compact_mode); + }else if(console_mode){ + set_mode.check(R.id.set_console_mode); + }else { + set_mode.check(R.id.set_normal_mode); + } + set_mode.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override - public void onClick(View v) { - SharedPreferences.Editor editor = sharedpreferences.edit(); - editor.putBoolean(Helper.SET_COMPACT_MODE, set_compact_mode.isChecked()); - editor.apply(); + public void onCheckedChanged(RadioGroup group, int checkedId) { + switch(checkedId) { + case R.id.set_compact_mode: + SharedPreferences.Editor editor = sharedpreferences.edit(); + editor.putBoolean(Helper.SET_COMPACT_MODE, true); + editor.putBoolean(Helper.SET_CONSOLE_MODE, false); + editor.apply(); + break; + case R.id.set_console_mode: + editor = sharedpreferences.edit(); + editor.putBoolean(Helper.SET_COMPACT_MODE, false); + editor.putBoolean(Helper.SET_CONSOLE_MODE, true); + editor.apply(); + break; + case R.id.set_normal_mode: + editor = sharedpreferences.edit(); + editor.putBoolean(Helper.SET_COMPACT_MODE, false); + editor.putBoolean(Helper.SET_CONSOLE_MODE, false); + editor.apply(); + break; + } } }); - boolean share_details = sharedpreferences.getBoolean(Helper.SET_SHARE_DETAILS, true); final CheckBox set_share_details = rootView.findViewById(R.id.set_share_details); set_share_details.setChecked(share_details); @@ -665,9 +806,10 @@ public class SettingsFragment extends Fragment { LinearLayout toot_visibility_container = rootView.findViewById(R.id.toot_visibility_container); - String prefKeyOauthTokenT = sharedpreferences.getString(Helper.PREF_KEY_OAUTH_TOKEN, null); SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); - final Account account = new AccountDAO(context, db).getAccountByToken(prefKeyOauthTokenT); + String userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null); + String instance = sharedpreferences.getString(Helper.PREF_INSTANCE, Helper.getLiveInstance(context)); + final Account account = new AccountDAO(context, db).getUniqAccount(userId, instance); final ImageView set_toot_visibility = rootView.findViewById(R.id.set_toot_visibility); if( theme == Helper.THEME_DARK){ changeDrawableColor(context, set_toot_visibility, R.color.dark_text); @@ -859,7 +1001,7 @@ public class SettingsFragment extends Fragment { ArrayAdapter<CharSequence> adapterResize = ArrayAdapter.createFromResource(getContext(), R.array.settings_resize_picture, android.R.layout.simple_spinner_item); resize_layout_spinner.setAdapter(adapterResize); - int positionSpinnerResize = sharedpreferences.getInt(Helper.SET_PICTURE_RESIZE, Helper.S_2MO); + int positionSpinnerResize = sharedpreferences.getInt(Helper.SET_PICTURE_RESIZE, Helper.S_NO); resize_layout_spinner.setSelection(positionSpinnerResize); resize_layout_spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override |