From 553b8a7d4cf597d5dca38ab535cb7094d14c8bde Mon Sep 17 00:00:00 2001 From: Apostolof <apotwohd@gmail.com> Date: Mon, 16 Jul 2018 16:31:39 +0300 Subject: [PATCH 1/8] Uploads improvements, Minor fixes --- app/src/main/AndroidManifest.xml | 2 +- .../mthmmy/activities/UploadActivity.java | 244 ++++++++++++++---- .../downloads/DownloadsActivity.java | 11 +- .../mthmmy/activities/main/MainActivity.java | 6 +- .../activities/settings/SettingsActivity.java | 9 +- .../activities/settings/SettingsFragment.java | 15 +- .../activities/topic/TopicActivity.java | 7 +- .../gr/thmmy/mthmmy/base/BaseActivity.java | 13 +- app/src/main/res/layout/activity_upload.xml | 29 +-- app/src/main/res/values-v21/styles.xml | 1 - app/src/main/res/values/colors.xml | 2 +- app/src/main/res/values/strings.xml | 16 +- app/src/main/res/values/styles.xml | 18 +- app/src/main/res/xml/app_preferences.xml | 12 + 14 files changed, 293 insertions(+), 92 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 3e7a42a9..86a9cdce 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -136,7 +136,7 @@ android:name=".services.NotificationService" android:exported="false"> <intent-filter> - <action android:name="com.google.firebase.MESSAGING_EVENT"/> + <action android:name="com.google.firebase.MESSAGING_EVENT" /> </intent-filter> </service> </application> diff --git a/app/src/main/java/gr/thmmy/mthmmy/activities/UploadActivity.java b/app/src/main/java/gr/thmmy/mthmmy/activities/UploadActivity.java index 65aa6598..9c3c05ba 100644 --- a/app/src/main/java/gr/thmmy/mthmmy/activities/UploadActivity.java +++ b/app/src/main/java/gr/thmmy/mthmmy/activities/UploadActivity.java @@ -1,18 +1,25 @@ package gr.thmmy.mthmmy.activities; +import android.content.DialogInterface; import android.content.Intent; +import android.content.SharedPreferences; +import android.database.Cursor; import android.net.Uri; import android.os.AsyncTask; import android.os.Bundle; -import android.support.v7.widget.AppCompatSpinner; -import android.util.Log; +import android.provider.MediaStore; +import android.provider.OpenableColumns; +import android.support.annotation.NonNull; +import android.support.v7.app.AlertDialog; +import android.support.v7.preference.PreferenceManager; +import android.support.v7.widget.AppCompatButton; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.EditText; import android.widget.LinearLayout; import android.widget.ProgressBar; -import android.widget.Spinner; +import android.widget.Toast; import net.gotev.uploadservice.MultipartUploadRequest; import net.gotev.uploadservice.UploadNotificationConfig; @@ -21,8 +28,8 @@ import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; -import java.net.URLEncoder; import java.util.ArrayList; +import java.util.Arrays; import gr.thmmy.mthmmy.R; import gr.thmmy.mthmmy.base.BaseActivity; @@ -34,20 +41,25 @@ import gr.thmmy.mthmmy.utils.parsing.ParseTask; import me.zhanghai.android.materialprogressbar.MaterialProgressBar; import timber.log.Timber; +import static gr.thmmy.mthmmy.activities.settings.SettingsActivity.UPLOADING_APP_SIGNATURE_ENABLE_KEY; + public class UploadActivity extends BaseActivity { /** * The key to use when putting upload's category String to {@link UploadActivity}'s Bundle. */ public static final String BUNDLE_UPLOAD_CATEGORY = "UPLOAD_CATEGORY"; private static final String uploadIndexUrl = "https://www.thmmy.gr/smf/index.php?action=tpmod;dl=upload"; + private static final String uploadedFrommThmmyPromptHtml = "<br /><div style=\"text-align: right;\"><span style=\"font-style: italic;\">uploaded from <a href=\"https://play.google.com/store/apps/details?id=gr.thmmy.mthmmy\">mTHMMY</a></span>"; private static final int REQUEST_CODE_CHOOSE_FILE = 8; + private static final int REQUEST_CODE_CAMERA = 4; private static ArrayList<UploadCategory> uploadRootCategories = new ArrayList<>(); - //private String currentUploadCategory = ""; private ParseUploadPageTask parseUploadPageTask; + private ArrayList<String> bundleCategory; private String categorySelected = "-1"; private String uploaderProfileIndex = "1"; private Uri fileUri; + private String fileIcon; //UI elements private MaterialProgressBar progressBar; @@ -55,6 +67,8 @@ public class UploadActivity extends BaseActivity { private AppCompatSpinnerWithoutDefault rootCategorySpinner; private EditText uploadTitle; private EditText uploadDescription; + private AppCompatButton titleDescriptionBuilderButton; + private AppCompatButton selectFileButton; //private static AppCompatButton titleDescriptionBuilderButton; @Override @@ -62,13 +76,22 @@ public class UploadActivity extends BaseActivity { super.onCreate(savedInstanceState); setContentView(R.layout.activity_upload); - /*Bundle extras = getIntent().getExtras(); + Bundle extras = getIntent().getExtras(); if (extras != null) { - //TODO auto fill category from bundle - currentUploadCategory = extras.getString(BUNDLE_UPLOAD_CATEGORY); - if (currentUploadCategory != null && !Objects.equals(currentUploadCategory, "")) { + String tmpUploadCategoryNav = extras.getString(BUNDLE_UPLOAD_CATEGORY); + //something like "THMMY.gr > Downloads > Βασικός Κύκλος > 3ο εξάμηνο > Ηλεκτρικά Κυκλώματα ΙΙ" + if (tmpUploadCategoryNav != null && !tmpUploadCategoryNav.equals("")) { + String[] tmpSplitUploadCategoryNav = tmpUploadCategoryNav.split(">"); + + for (int i = 0; i < tmpSplitUploadCategoryNav.length; ++i) { + tmpSplitUploadCategoryNav[i] = tmpSplitUploadCategoryNav[i].trim(); + } + + if (tmpSplitUploadCategoryNav.length > 2) { + bundleCategory = new ArrayList<>(Arrays.asList(tmpSplitUploadCategoryNav).subList(2, tmpSplitUploadCategoryNav.length)); + } } - }*/ + } //Initialize toolbar toolbar = findViewById(R.id.toolbar); @@ -89,64 +112,91 @@ public class UploadActivity extends BaseActivity { rootCategorySpinner = findViewById(R.id.upload_spinner_category_root); rootCategorySpinner.setOnItemSelectedListener(new CustomOnItemSelectedListener(uploadRootCategories)); - /*titleDescriptionBuilderButton = findViewById(R.id.upload_title_description_builder); - titleDescriptionBuilderButton.setEnabled(false); + titleDescriptionBuilderButton = findViewById(R.id.upload_title_description_builder); titleDescriptionBuilderButton.setOnClickListener(new View.OnClickListener() { @Override - public void onClick(View v) { - //TODO some dialog? + public void onClick(View view) { + if (categorySelected.equals("-1")) { + Toast.makeText(view.getContext(), "Please choose category first", Toast.LENGTH_SHORT).show(); + return; + } + //TODO else } - });*/ + }); + titleDescriptionBuilderButton.setEnabled(false); uploadTitle = findViewById(R.id.upload_title); uploadDescription = findViewById(R.id.upload_description); - findViewById(R.id.upload_select_file_button).setOnClickListener(new View.OnClickListener() { + selectFileButton = findViewById(R.id.upload_select_file_button); + selectFileButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - String[] mimeTypes = {"image/jpeg", "text/html", "image/png", "image/jpg", "image/gif", - "application/pdf", "application/rar", "application/x-tar", "application/zip", - "application/msword", "image/vnd.djvu", "application/gz", "application/tar.gz"}; - - Intent intent = new Intent(Intent.ACTION_GET_CONTENT) - //.setType("*/*") - .setType("image/jpeg") - .putExtra(Intent.EXTRA_MIME_TYPES, mimeTypes); - - startActivityForResult(intent, REQUEST_CODE_CHOOSE_FILE); + final CharSequence[] options = {"Take photo", "Choose file", + "Cancel"}; + AlertDialog.Builder builder = new AlertDialog.Builder(UploadActivity.this); + builder.setTitle("Upload file"); + builder.setItems(options, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int item) { + if (options[item].equals("Take photo")) { + Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); + startActivityForResult(intent, REQUEST_CODE_CAMERA); + } else if (options[item].equals("Choose file")) { + String[] mimeTypes = {"image/jpeg", "text/html", "image/png", "image/jpg", "image/gif", + "application/pdf", "application/rar", "application/x-tar", "application/zip", + "application/msword", "image/vnd.djvu", "application/gz", "application/tar.gz"}; + + Intent intent = new Intent(Intent.ACTION_GET_CONTENT) + //.setType("*/*") + .setType("image/jpeg") + .putExtra(Intent.EXTRA_MIME_TYPES, mimeTypes); + + startActivityForResult(intent, REQUEST_CODE_CHOOSE_FILE); + } else if (options[item].equals("Cancel")) { + dialog.dismiss(); + } + } + }); + builder.show(); } }); findViewById(R.id.upload_upload_button).setOnClickListener(new View.OnClickListener() { @Override - public void onClick(View v) { + public void onClick(View view) { String uploadTitleText = uploadTitle.getText().toString(); String uploadDescriptionText = uploadDescription.getText().toString(); if (uploadTitleText.equals("")) { uploadTitle.setError("Required"); } - if (uploadDescriptionText.equals("")) { - uploadDescription.setError("Required"); + if (fileUri == null) { + selectFileButton.setError("Required"); + } + if (categorySelected.equals("-1")) { + Toast.makeText(view.getContext(), "Please choose category first", Toast.LENGTH_SHORT).show(); } - /*if (categorySelected.equals("-1")){ - //TODO set error - //rootCategorySpinner - }*/ - if (categorySelected.equals("-1") || uploadTitleText.equals("") || - fileUri == null || uploadDescriptionText.equals("")) { + if (categorySelected.equals("-1") || uploadTitleText.equals("") || fileUri == null) { return; } + String tmpDescriptionText = uploadDescriptionText; + + SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(view.getContext()); + if (sharedPrefs.getBoolean(UPLOADING_APP_SIGNATURE_ENABLE_KEY, true)) { + tmpDescriptionText += uploadedFrommThmmyPromptHtml; + } + try { - String uploadId = new MultipartUploadRequest(v.getContext(), uploadIndexUrl) + new MultipartUploadRequest(view.getContext(), uploadIndexUrl) .setUtf8Charset() .addParameter("tp-dluploadtitle", uploadTitleText) .addParameter("tp-dluploadcat", categorySelected) - .addParameter("tp-dluploadtext", uploadDescriptionText) + .addParameter("tp-dluploadtext", tmpDescriptionText) .addFileToUpload(fileUri.toString(), "tp-dluploadfile") - .addParameter("tp_dluploadicon", "blank.gif") //TODO auto-select this + .addParameter("tp_dluploadicon", fileIcon) .addParameter("tp-uploaduser", uploaderProfileIndex) .setNotificationConfig(new UploadNotificationConfig()) .setMaxRetries(2).startUpload(); @@ -156,7 +206,6 @@ public class UploadActivity extends BaseActivity { } }); - if (uploadRootCategories.isEmpty()) { parseUploadPageTask = new ParseUploadPageTask(); parseUploadPageTask.execute(uploadIndexUrl); @@ -166,11 +215,28 @@ public class UploadActivity extends BaseActivity { tmpSpinnerArray[i] = uploadRootCategories.get(i).getCategoryTitle(); } - ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<>( - BaseApplication.getInstance().getApplicationContext(), + ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<>(BaseApplication.getInstance().getApplicationContext(), android.R.layout.simple_spinner_dropdown_item, tmpSpinnerArray); spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); rootCategorySpinner.setAdapter(spinnerArrayAdapter); + + //Sets bundle selection + if (bundleCategory != null) { + int bundleSelectionIndex = -1, currentIndex = 0; + for (UploadCategory category : uploadRootCategories) { + if (category.getCategoryTitle().contains(bundleCategory.get(0))) { //TODO fix .contains, always false + bundleSelectionIndex = currentIndex; + break; + } + ++currentIndex; + } + + if (bundleSelectionIndex != -1) { + rootCategorySpinner.setSelection(bundleSelectionIndex, true); + } + } + + titleDescriptionBuilderButton.setEnabled(true); } } @@ -199,19 +265,65 @@ public class UploadActivity extends BaseActivity { @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == REQUEST_CODE_CHOOSE_FILE && data != null) { - //TODO upload the correct file - //Check this https://stackoverflow.com/questions/5568874/how-to-extract-the-file-name-from-uri-returned-from-intent-action-get-content/25005243 fileUri = data.getData(); + if (fileUri != null) { + String filename = filenameFromUri(fileUri); + selectFileButton.setText(filename); + + filename = filename.toLowerCase(); + if (filename.endsWith(".jpg")) { + fileIcon = "jpg_image.gif"; + } else if (filename.endsWith(".gif")) { + fileIcon = "gif_image.gif"; + } else if (filename.endsWith(".png")) { + fileIcon = "png_image.gif"; + } else if (filename.endsWith(".html") || filename.endsWith(".htm")) { + fileIcon = "html_file.gif"; + } else if (filename.endsWith(".pdf") || filename.endsWith(".doc") || + filename.endsWith("djvu")) { + fileIcon = "text_file.gif"; + } else if (filename.endsWith(".zip") || filename.endsWith(".rar") || + filename.endsWith(".tar") || filename.endsWith(".tar.gz") || + filename.endsWith(".gz")) { + fileIcon = "archive.gif"; + } else { + fileIcon = "blank.gif"; + } + } + } else if (requestCode == REQUEST_CODE_CAMERA && data != null) { + //TODO } else { super.onActivityResult(requestCode, resultCode, data); } } + @NonNull + private String filenameFromUri(Uri uri) { + String filename = null; + if (uri.getScheme().equals("content")) { + try (Cursor cursor = getContentResolver().query(uri, null, null, null, null)) { + if (cursor != null && cursor.moveToFirst()) { + filename = cursor.getString(cursor.getColumnIndex(OpenableColumns.DISPLAY_NAME)); + } + } + } + if (filename == null) { + filename = uri.getPath(); + int cut = filename.lastIndexOf('/'); + if (cut != -1) { + filename = filename.substring(cut + 1); + } + } + + return filename; + } + private class CustomOnItemSelectedListener implements AdapterView.OnItemSelectedListener { private ArrayList<UploadCategory> parentCategories, childCategories; + // Suppresses default constructor + @SuppressWarnings("unused") private CustomOnItemSelectedListener() { - //Disable default constructor } CustomOnItemSelectedListener(ArrayList<UploadCategory> parentCategories) { @@ -220,7 +332,7 @@ public class UploadActivity extends BaseActivity { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { - //Removes old, unneeded sub categories spinner(s) + //Removes old, unneeded sub-category spinner(s) int viewIndex = categoriesSpinners.indexOfChild((AppCompatSpinnerWithoutDefault) view.getParent()); if (viewIndex + 1 != categoriesSpinners.getChildCount()) { //Makes sure this is not the last child @@ -229,7 +341,7 @@ public class UploadActivity extends BaseActivity { categorySelected = parentCategories.get(position).getValue(); - //Adds new sub categories spinner + //Adds new sub-category spinner if (parentCategories.get(position).hasSubCategories()) { childCategories = parentCategories.get(position).getSubCategories(); @@ -243,12 +355,27 @@ public class UploadActivity extends BaseActivity { spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); AppCompatSpinnerWithoutDefault subSpinner = new AppCompatSpinnerWithoutDefault(categoriesSpinners.getContext()); - subSpinner.setPromptId(R.string.upload_spinners_prompt); + subSpinner.setPromptId(R.string.upload_spinners_hint); subSpinner.setPopupBackgroundResource(R.color.primary); subSpinner.setAdapter(spinnerArrayAdapter); subSpinner.setOnItemSelectedListener(new CustomOnItemSelectedListener(childCategories)); - categoriesSpinners.addView(subSpinner); + + //Sets bundle selection + if (bundleCategory != null && viewIndex < bundleCategory.size()) { + int bundleSelectionIndex = -1, currentIndex = 0; + for (UploadCategory category : parentCategories) { + if (category.getCategoryTitle().contains(bundleCategory.get(viewIndex))) { + bundleSelectionIndex = currentIndex; + break; + } + ++currentIndex; + } + + if (bundleSelectionIndex != -1) { + subSpinner.setSelection(bundleSelectionIndex, true); + } + } } } @@ -320,13 +447,28 @@ public class UploadActivity extends BaseActivity { tmpSpinnerArray[i] = uploadRootCategories.get(i).getCategoryTitle(); } - ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<>( - BaseApplication.getInstance().getApplicationContext(), + ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<>(BaseApplication.getInstance().getApplicationContext(), android.R.layout.simple_spinner_dropdown_item, tmpSpinnerArray); spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); rootCategorySpinner.setAdapter(spinnerArrayAdapter); - //titleDescriptionBuilderButton.setEnabled(true); + //Sets bundle selection + if (bundleCategory != null) { + int bundleSelectionIndex = -1, currentIndex = 0; + for (UploadCategory category : uploadRootCategories) { + if (category.getCategoryTitle().contains(bundleCategory.get(0))) { //TODO fix .contains, always false + bundleSelectionIndex = currentIndex; + break; + } + ++currentIndex; + } + + if (bundleSelectionIndex != -1) { + rootCategorySpinner.setSelection(bundleSelectionIndex, true); + } + } + + titleDescriptionBuilderButton.setEnabled(true); progressBar.setVisibility(ProgressBar.GONE); } } diff --git a/app/src/main/java/gr/thmmy/mthmmy/activities/downloads/DownloadsActivity.java b/app/src/main/java/gr/thmmy/mthmmy/activities/downloads/DownloadsActivity.java index 836efc31..8958de5e 100644 --- a/app/src/main/java/gr/thmmy/mthmmy/activities/downloads/DownloadsActivity.java +++ b/app/src/main/java/gr/thmmy/mthmmy/activities/downloads/DownloadsActivity.java @@ -8,6 +8,7 @@ import android.support.design.widget.FloatingActionButton; import android.support.v7.widget.DividerItemDecoration; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; +import android.util.Log; import android.view.Menu; import android.view.MenuItem; import android.view.View; @@ -48,6 +49,7 @@ public class DownloadsActivity extends BaseActivity implements DownloadsAdapter. public static final String BUNDLE_DOWNLOADS_TITLE = "DOWNLOADS_TITLE"; private static final String downloadsIndexUrl = "https://www.thmmy.gr/smf/index.php?action=tpmod;dl;"; private String downloadsUrl; + private String downloadsNav; private String downloadsTitle; private final ArrayList<Download> parsedDownloads = new ArrayList<>(); @@ -143,8 +145,8 @@ public class DownloadsActivity extends BaseActivity implements DownloadsAdapter. case R.id.menu_upload: Intent intent = new Intent(DownloadsActivity.this, UploadActivity.class); Bundle extras = new Bundle(); - /*extras.putString(BUNDLE_UPLOAD_CATEGORY, ""); - intent.putExtras(extras);*/ + extras.putString(BUNDLE_UPLOAD_CATEGORY, downloadsNav); + intent.putExtras(extras); startActivity(intent); return true; default: @@ -211,8 +213,11 @@ public class DownloadsActivity extends BaseActivity implements DownloadsAdapter. @Override protected void parse(Document downloadPage) throws ParseException { try { + Element downloadsNavElement = downloadPage.select("div.nav").first(); + downloadsNav = downloadsNavElement.text(); + if (downloadsTitle == null || Objects.equals(downloadsTitle, "")) - downloadsTitle = downloadPage.select("div.nav>b>a.nav").last().text(); + downloadsTitle = downloadsNavElement.select("b>a.nav").last().text(); //Removes loading item if (isLoadingMore) { diff --git a/app/src/main/java/gr/thmmy/mthmmy/activities/main/MainActivity.java b/app/src/main/java/gr/thmmy/mthmmy/activities/main/MainActivity.java index 3e6f86cb..59d686a6 100644 --- a/app/src/main/java/gr/thmmy/mthmmy/activities/main/MainActivity.java +++ b/app/src/main/java/gr/thmmy/mthmmy/activities/main/MainActivity.java @@ -84,7 +84,11 @@ public class MainActivity extends BaseActivity implements RecentFragment.RecentF tabLayout.setupWithViewPager(viewPager); SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(this); - tabLayout.getTabAt(Integer.parseInt(sharedPrefs.getString(DEFAULT_HOME_TAB, "0"))).select(); + int preferredTab = Integer.parseInt(sharedPrefs.getString(DEFAULT_HOME_TAB, "0")); + if (preferredTab != 3 || sessionManager.isLoggedIn()) { + tabLayout.getTabAt(preferredTab).select(); + } + setMainActivity(this); } diff --git a/app/src/main/java/gr/thmmy/mthmmy/activities/settings/SettingsActivity.java b/app/src/main/java/gr/thmmy/mthmmy/activities/settings/SettingsActivity.java index b57d2c0d..0f44a511 100644 --- a/app/src/main/java/gr/thmmy/mthmmy/activities/settings/SettingsActivity.java +++ b/app/src/main/java/gr/thmmy/mthmmy/activities/settings/SettingsActivity.java @@ -11,9 +11,10 @@ public class SettingsActivity extends BaseActivity { public static final String DEFAULT_HOME_TAB = "pref_app_main_default_tab_key"; public static final String NOTIFICATION_LED_KEY = "pref_notification_led_enable_key"; public static final String NOTIFICATION_VIBRATION_KEY = "pref_notification_vibration_enable_key"; - public static final String APP_SIGNATURE_ENABLE_KEY = "pref_posting_app_signature_enable_key"; + public static final String POSTING_APP_SIGNATURE_ENABLE_KEY = "pref_posting_app_signature_enable_key"; + public static final String UPLOADING_APP_SIGNATURE_ENABLE_KEY = "pref_uploading_app_signature_enable_key"; - private Fragment preferenceFragment; + private SettingsFragment preferenceFragment; @Override protected void onCreate(Bundle savedInstanceState) { @@ -42,6 +43,8 @@ public class SettingsActivity extends BaseActivity { protected void onResume() { drawer.setSelection(SETTINGS_ID); super.onResume(); - ((SettingsFragment) preferenceFragment).updateUserLoginState(sessionManager.isLoggedIn()); + if (preferenceFragment != null) { + preferenceFragment.updateUserLoginState(sessionManager.isLoggedIn()); + } } } diff --git a/app/src/main/java/gr/thmmy/mthmmy/activities/settings/SettingsFragment.java b/app/src/main/java/gr/thmmy/mthmmy/activities/settings/SettingsFragment.java index c0cf9c3b..19a47dd1 100644 --- a/app/src/main/java/gr/thmmy/mthmmy/activities/settings/SettingsFragment.java +++ b/app/src/main/java/gr/thmmy/mthmmy/activities/settings/SettingsFragment.java @@ -22,10 +22,12 @@ public class SettingsFragment extends PreferenceFragmentCompat { public static final String ARG_IS_LOGGED_IN = "selectedRingtoneKey"; //Preferences xml keys - private static final String POSTING_CATEGORY = "pref_category_posting_key"; private static final String DEFAULT_HOME_TAB = "pref_app_main_default_tab_key"; - private static final String POSTING_APP_SIGNATURE_ENABLE = "pref_posting_app_signature_enable_key"; private static final String SELECTED_NOTIFICATIONS_SOUND = "pref_notifications_select_sound_key"; + private static final String POSTING_CATEGORY = "pref_category_posting_key"; + private static final String POSTING_APP_SIGNATURE_ENABLE = "pref_posting_app_signature_enable_key"; + private static final String UPLOADING_CATEGORY = "pref_category_uploading_key"; + private static final String UPLOADING_APP_SIGNATURE_ENABLE = "pref_uploading_app_signature_enable_key"; //SharedPreferences keys private static final int REQUEST_CODE_ALERT_RINGTONE = 2; @@ -79,6 +81,9 @@ public class SettingsFragment extends PreferenceFragmentCompat { findPreference(POSTING_CATEGORY).setVisible(isLoggedIn); findPreference(POSTING_APP_SIGNATURE_ENABLE).setVisible(isLoggedIn); + findPreference(UPLOADING_CATEGORY).setVisible(isLoggedIn); + findPreference(UPLOADING_APP_SIGNATURE_ENABLE).setVisible(isLoggedIn); + if (!isLoggedIn && defaultHomeTabEntries.contains("Unread")) { defaultHomeTabEntries.remove("Unread"); defaultHomeTabValues.remove("2"); @@ -148,6 +153,12 @@ public class SettingsFragment extends PreferenceFragmentCompat { public void updateUserLoginState(boolean isLoggedIn) { this.isLoggedIn = isLoggedIn; + findPreference(POSTING_CATEGORY).setVisible(isLoggedIn); + findPreference(POSTING_APP_SIGNATURE_ENABLE).setVisible(isLoggedIn); + + findPreference(UPLOADING_CATEGORY).setVisible(isLoggedIn); + findPreference(UPLOADING_APP_SIGNATURE_ENABLE).setVisible(isLoggedIn); + if (!isLoggedIn && defaultHomeTabEntries.contains("Unread")) { defaultHomeTabEntries.remove("Unread"); defaultHomeTabValues.remove("2"); diff --git a/app/src/main/java/gr/thmmy/mthmmy/activities/topic/TopicActivity.java b/app/src/main/java/gr/thmmy/mthmmy/activities/topic/TopicActivity.java index f5747998..041c26a6 100644 --- a/app/src/main/java/gr/thmmy/mthmmy/activities/topic/TopicActivity.java +++ b/app/src/main/java/gr/thmmy/mthmmy/activities/topic/TopicActivity.java @@ -222,7 +222,7 @@ public class TopicActivity extends BaseActivity { if (sessionManager.isLoggedIn()) { SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(this); - includeAppSignaturePreference = sharedPrefs.getBoolean(SettingsActivity.APP_SIGNATURE_ENABLE_KEY, true); + includeAppSignaturePreference = sharedPrefs.getBoolean(SettingsActivity.POSTING_APP_SIGNATURE_ENABLE_KEY, true); } thisPageBookmark = new Bookmark(topicTitle, ThmmyPage.getTopicId(topicPageUrl), true); @@ -316,7 +316,7 @@ public class TopicActivity extends BaseActivity { topicMenuBookmarkClick(); return true; case R.id.menu_info: - AlertDialog.Builder builder = new AlertDialog.Builder(this); + AlertDialog.Builder builder = new AlertDialog.Builder(this, R.style.AppCompatAlertDialogStyleAccent); LayoutInflater inflater = this.getLayoutInflater(); LinearLayout infoDialog = (LinearLayout) inflater.inflate(R.layout.dialog_topic_info , null); @@ -368,7 +368,7 @@ public class TopicActivity extends BaseActivity { if (sessionManager.isLoggedIn()) { SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(this); - includeAppSignaturePreference = sharedPrefs.getBoolean(SettingsActivity.APP_SIGNATURE_ENABLE_KEY, true); + includeAppSignaturePreference = sharedPrefs.getBoolean(SettingsActivity.POSTING_APP_SIGNATURE_ENABLE_KEY, true); } } @@ -559,7 +559,6 @@ public class TopicActivity extends BaseActivity { topicTask = new TopicTask(); topicTask.execute(pagesUrls.get(pageRequested)); //Attempt data parsing - } } diff --git a/app/src/main/java/gr/thmmy/mthmmy/base/BaseActivity.java b/app/src/main/java/gr/thmmy/mthmmy/base/BaseActivity.java index 27002423..faad57b6 100644 --- a/app/src/main/java/gr/thmmy/mthmmy/base/BaseActivity.java +++ b/app/src/main/java/gr/thmmy/mthmmy/base/BaseActivity.java @@ -16,6 +16,7 @@ import android.support.design.widget.BottomSheetDialog; import android.support.v4.content.ContextCompat; import android.support.v4.content.FileProvider; import android.support.v7.app.AppCompatActivity; +import android.support.v7.preference.PreferenceManager; import android.support.v7.widget.Toolbar; import android.view.MenuItem; import android.view.View; @@ -63,7 +64,9 @@ import static gr.thmmy.mthmmy.activities.downloads.DownloadsActivity.BUNDLE_DOWN import static gr.thmmy.mthmmy.activities.profile.ProfileActivity.BUNDLE_PROFILE_THUMBNAIL_URL; import static gr.thmmy.mthmmy.activities.profile.ProfileActivity.BUNDLE_PROFILE_URL; import static gr.thmmy.mthmmy.activities.profile.ProfileActivity.BUNDLE_PROFILE_USERNAME; +import static gr.thmmy.mthmmy.activities.settings.SettingsActivity.DEFAULT_HOME_TAB; import static gr.thmmy.mthmmy.services.DownloadHelper.SAVE_DIR; +import static gr.thmmy.mthmmy.session.SessionManager.SUCCESS; import static gr.thmmy.mthmmy.utils.FileUtils.getMimeType; public abstract class BaseActivity extends AppCompatActivity { @@ -469,6 +472,14 @@ public abstract class BaseActivity extends AppCompatActivity { } protected void onPostExecute(Integer result) { + if (result == SUCCESS) { + SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); + if (sharedPrefs.getString(DEFAULT_HOME_TAB, "0").equals("2")) { + SharedPreferences.Editor editor = sharedPrefs.edit(); + editor.putString(DEFAULT_HOME_TAB, "0").apply(); + } + } + updateDrawer(); if (mainActivity != null) mainActivity.updateTabs(); @@ -645,7 +656,7 @@ public abstract class BaseActivity extends AppCompatActivity { return true; } - //Display popup gor user to grant permission + //Display popup for user to grant permission private void requestPerms() { //Runtime permissions request for devices with API >= 23 if (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP_MR1) { String[] PERMISSIONS_STORAGE = { diff --git a/app/src/main/res/layout/activity_upload.xml b/app/src/main/res/layout/activity_upload.xml index 58bd56ce..43e17fad 100644 --- a/app/src/main/res/layout/activity_upload.xml +++ b/app/src/main/res/layout/activity_upload.xml @@ -65,7 +65,7 @@ android:layout_marginBottom="6dp" android:layout_marginTop="6dp" android:popupBackground="@color/primary" - android:prompt="@string/upload_spinners_prompt" /> + android:prompt="@string/upload_spinners_hint" /> </LinearLayout> <TextView @@ -117,33 +117,26 @@ android:maxLines="3" /> </android.support.design.widget.TextInputLayout> - <TextView + <android.support.v7.widget.AppCompatButton android:id="@+id/upload_select_file_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" - android:layout_marginBottom="6dp" - android:layout_marginTop="6dp" android:drawablePadding="5dp" android:drawableStart="@drawable/ic_insert_drive_file" android:gravity="center_vertical" android:text="@string/upload_select_file" - android:textAlignment="center" android:textColor="@color/primary_text" /> - <FrameLayout - android:layout_width="match_parent" - android:layout_height="0dp" - android:layout_gravity="bottom|end" - android:layout_weight="4"> - - <android.support.v7.widget.AppCompatButton - android:id="@+id/upload_upload_button" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_gravity="bottom|end" - android:text="@string/upload_upload_button" /> - </FrameLayout> + <android.support.v7.widget.AppCompatButton + android:id="@+id/upload_upload_button" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center" + android:gravity="center_vertical" + android:text="@string/upload_upload_button" + android:textAlignment="center" + android:textColor="@color/accent" /> </LinearLayout> </ScrollView> diff --git a/app/src/main/res/values-v21/styles.xml b/app/src/main/res/values-v21/styles.xml index 6863be1d..628b2a36 100644 --- a/app/src/main/res/values-v21/styles.xml +++ b/app/src/main/res/values-v21/styles.xml @@ -17,7 +17,6 @@ <item name="alertDialogTheme">@style/AppCompatAlertDialogStyle</item> <item name="android:windowContentTransitions">true</item> - <item name="popupMenuStyle">@style/PopupMenuStyle</item> </style> <style name="AppTheme.NoActionBar"> diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index c864d4e3..257e7f22 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -16,12 +16,12 @@ <color name="background">#323232</color> <color name="card_background">#3C3F41</color> <color name="divider">#8B8B8B</color> - <!--<color name="link_color">#FFC107</color>--> <color name="link_color">#FF9800</color> <color name="white">#FFFFFF</color> <color name="iron">#CCCCCC</color> <color name="card_expand_text_color">#E7E7E7</color> <color name="dialog_bg_semi_transparent">#D926A69A</color> + <color name="dialog_bg_semi_transparent_dark">#D92B2B2B</color> <color name="member_of_the_month">#E91E63</color> </resources> diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index e14b0335..149526ec 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -114,14 +114,22 @@ <string name="upload_description_hint">Description</string> <string name="upload_select_file">Select file to upload</string> <string name="upload_upload_button">Upload</string> - <string name="upload_spinners_prompt">Select one</string> + <string name="upload_spinners_hint">Select a category</string> + + <!--Upload Dialog--> + <string name="dialog_upload_radio_buttons_title">Select type of upload</string> + <string name="dialog_upload_radio_button_exams">Exam subjects</string> + <string name="dialog_upload_radio_button_exam_solutions">Exam solutions</string> + <string name="dialog_upload_radio_button_notes">Course notes</string> + <string name="dialog_upload_select_lesson_title">Select the course</string> + <string name="dialog_upload_select_semester">Select the semester</string> <!--Settings Activity--> <string name="action_settings">Settings</string> <string name="title_activity_settings">Settings</string> <string name="pref_category_app">App</string> - <string name="pref_title_app_main_default_tab">Home default tab</string> + <string name="pref_title_app_main_default_tab">Default home tab</string> <string name="pref_summary_app_main_default_tab">Select your preferred, home screen, default tab</string> <string name="pref_app_main_default_tab_dialog_title">Default home tab</string> @@ -137,4 +145,8 @@ <string name="pref_category_posting">Posting</string> <string name="pref_title_posting_app_signature_enable">App signature</string> <string name="pref_summary_posting_app_signature_enable">If enabled, a \"sent from mTHMMY\" message will be inserted at the end of your posts</string> + + <string name="pref_category_uploading">Uploading</string> + <string name="pref_title_uploading_app_signature_enable">App signature</string> + <string name="pref_summary_uploading_app_signature_enable">If enabled, an \"uploaded from mTHMMY\" message will be inserted at the end of your uploads descriptions</string> </resources> diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index bcd578a1..4ffe55a1 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -2,7 +2,6 @@ <!-- Dark application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> - <!-- Customize your theme here. --> <item name="colorPrimary">@color/primary</item> <item name="colorPrimaryDark">@color/primary_dark</item> <item name="colorAccent">@color/accent</item> @@ -17,9 +16,9 @@ <item name="android:textColorHint">@color/iron</item> <item name="colorButtonNormal">@color/primary</item> - <item name="alertDialogTheme">@style/AppCompatAlertDialogStyle</item> - <item name="popupMenuStyle">@style/PopupMenuStyle</item> + <!--Default alert dialog theme--> + <item name="alertDialogTheme">@style/AppCompatAlertDialogStyle</item> </style> <style name="AppTheme.NoActionBar"> @@ -46,7 +45,18 @@ <item name="android:background">@color/primary</item> </style> - <style name="AppCompatAlertDialogStyle" parent="Theme.AppCompat.Light.Dialog.Alert"> + <style name="AppCompatAlertDialogStyle" parent="Theme.AppCompat.Dialog"> + <item name="android:windowTitleStyle">@style/AppCompatAlertDialogStyleTitle</item> + <item name="colorAccent">@color/accent</item> + <item name="android:textColorPrimary">@color/primary_text</item> + <item name="android:colorBackground">@color/dialog_bg_semi_transparent_dark</item> + </style> + + <style name="AppCompatAlertDialogStyleTitle" parent="@android:style/TextAppearance.DialogWindowTitle"> + <item name="android:textColor">@color/accent</item> + </style> + + <style name="AppCompatAlertDialogStyleAccent" parent="Theme.AppCompat.Light.Dialog.Alert"> <item name="colorAccent">@color/iron</item> <item name="android:textColorPrimary">@color/primary_text</item> <item name="android:colorBackground">@color/dialog_bg_semi_transparent</item> diff --git a/app/src/main/res/xml/app_preferences.xml b/app/src/main/res/xml/app_preferences.xml index c7d1b177..806ba3a8 100644 --- a/app/src/main/res/xml/app_preferences.xml +++ b/app/src/main/res/xml/app_preferences.xml @@ -52,4 +52,16 @@ </android.support.v7.preference.PreferenceCategory> + <android.support.v7.preference.PreferenceCategory + android:key="pref_category_uploading_key" + android:title="@string/pref_category_uploading"> + + <android.support.v7.preference.SwitchPreferenceCompat + android:defaultValue="true" + android:key="pref_uploading_app_signature_enable_key" + android:summary="@string/pref_summary_uploading_app_signature_enable" + android:title="@string/pref_title_uploading_app_signature_enable" /> + + </android.support.v7.preference.PreferenceCategory> + </android.support.v7.preference.PreferenceScreen> \ No newline at end of file From 1192151821c3756e3cae14ab4b7b49d9d01810ca Mon Sep 17 00:00:00 2001 From: Apostolof <apotwohd@gmail.com> Date: Mon, 16 Jul 2018 21:17:11 +0300 Subject: [PATCH 2/8] Uploads improvements --- app/src/main/AndroidManifest.xml | 10 +- .../downloads/DownloadsActivity.java | 5 +- .../{ => upload}/UploadActivity.java | 49 ++++- .../upload/UploadFieldsBuilderActivity.java | 181 ++++++++++++++++++ .../gr/thmmy/mthmmy/base/BaseActivity.java | 2 +- app/src/main/res/layout/activity_upload.xml | 4 +- .../layout/activity_upload_fields_builder.xml | 176 +++++++++++++++++ app/src/main/res/values/strings.xml | 19 +- 8 files changed, 430 insertions(+), 16 deletions(-) rename app/src/main/java/gr/thmmy/mthmmy/activities/{ => upload}/UploadActivity.java (89%) create mode 100644 app/src/main/java/gr/thmmy/mthmmy/activities/upload/UploadFieldsBuilderActivity.java create mode 100644 app/src/main/res/layout/activity_upload_fields_builder.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 86a9cdce..199386e1 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -98,7 +98,15 @@ android:value=".activities.main.MainActivity" /> </activity> <activity - android:name=".activities.UploadActivity" + android:name=".activities.upload.UploadActivity" + android:parentActivityName=".activities.main.MainActivity" + android:theme="@style/AppTheme.NoActionBar"> + <meta-data + android:name="android.support.PARENT_ACTIVITY" + android:value=".activities.main.MainActivity" /> + </activity> + <activity + android:name=".activities.upload.UploadFieldsBuilderActivity" android:parentActivityName=".activities.main.MainActivity" android:theme="@style/AppTheme.NoActionBar"> <meta-data diff --git a/app/src/main/java/gr/thmmy/mthmmy/activities/downloads/DownloadsActivity.java b/app/src/main/java/gr/thmmy/mthmmy/activities/downloads/DownloadsActivity.java index 8958de5e..e67ed73a 100644 --- a/app/src/main/java/gr/thmmy/mthmmy/activities/downloads/DownloadsActivity.java +++ b/app/src/main/java/gr/thmmy/mthmmy/activities/downloads/DownloadsActivity.java @@ -8,7 +8,6 @@ import android.support.design.widget.FloatingActionButton; import android.support.v7.widget.DividerItemDecoration; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; -import android.util.Log; import android.view.Menu; import android.view.MenuItem; import android.view.View; @@ -23,7 +22,7 @@ import java.util.ArrayList; import java.util.Objects; import gr.thmmy.mthmmy.R; -import gr.thmmy.mthmmy.activities.UploadActivity; +import gr.thmmy.mthmmy.activities.upload.UploadActivity; import gr.thmmy.mthmmy.base.BaseActivity; import gr.thmmy.mthmmy.base.BaseApplication; import gr.thmmy.mthmmy.model.Download; @@ -36,7 +35,7 @@ import okhttp3.Request; import okhttp3.Response; import timber.log.Timber; -import static gr.thmmy.mthmmy.activities.UploadActivity.BUNDLE_UPLOAD_CATEGORY; +import static gr.thmmy.mthmmy.activities.upload.UploadActivity.BUNDLE_UPLOAD_CATEGORY; public class DownloadsActivity extends BaseActivity implements DownloadsAdapter.OnLoadMoreListener { /** diff --git a/app/src/main/java/gr/thmmy/mthmmy/activities/UploadActivity.java b/app/src/main/java/gr/thmmy/mthmmy/activities/upload/UploadActivity.java similarity index 89% rename from app/src/main/java/gr/thmmy/mthmmy/activities/UploadActivity.java rename to app/src/main/java/gr/thmmy/mthmmy/activities/upload/UploadActivity.java index 9c3c05ba..248c8106 100644 --- a/app/src/main/java/gr/thmmy/mthmmy/activities/UploadActivity.java +++ b/app/src/main/java/gr/thmmy/mthmmy/activities/upload/UploadActivity.java @@ -1,5 +1,6 @@ -package gr.thmmy.mthmmy.activities; +package gr.thmmy.mthmmy.activities.upload; +import android.app.Activity; import android.content.DialogInterface; import android.content.Intent; import android.content.SharedPreferences; @@ -13,6 +14,7 @@ import android.support.annotation.NonNull; import android.support.v7.app.AlertDialog; import android.support.v7.preference.PreferenceManager; import android.support.v7.widget.AppCompatButton; +import android.util.Log; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; @@ -42,6 +44,10 @@ import me.zhanghai.android.materialprogressbar.MaterialProgressBar; import timber.log.Timber; import static gr.thmmy.mthmmy.activities.settings.SettingsActivity.UPLOADING_APP_SIGNATURE_ENABLE_KEY; +import static gr.thmmy.mthmmy.activities.upload.UploadFieldsBuilderActivity.BUNDLE_UPLOAD_FIELD_BUILDER_COURSE; +import static gr.thmmy.mthmmy.activities.upload.UploadFieldsBuilderActivity.BUNDLE_UPLOAD_FIELD_BUILDER_SEMESTER; +import static gr.thmmy.mthmmy.activities.upload.UploadFieldsBuilderActivity.RESULT_DESCRIPTION; +import static gr.thmmy.mthmmy.activities.upload.UploadFieldsBuilderActivity.RESULT_TITLE; public class UploadActivity extends BaseActivity { /** @@ -52,6 +58,7 @@ public class UploadActivity extends BaseActivity { private static final String uploadedFrommThmmyPromptHtml = "<br /><div style=\"text-align: right;\"><span style=\"font-style: italic;\">uploaded from <a href=\"https://play.google.com/store/apps/details?id=gr.thmmy.mthmmy\">mTHMMY</a></span>"; private static final int REQUEST_CODE_CHOOSE_FILE = 8; private static final int REQUEST_CODE_CAMERA = 4; + private static final int REQUEST_CODE_FIELDS_BUILDER = 74; private static ArrayList<UploadCategory> uploadRootCategories = new ArrayList<>(); private ParseUploadPageTask parseUploadPageTask; @@ -120,7 +127,35 @@ public class UploadActivity extends BaseActivity { Toast.makeText(view.getContext(), "Please choose category first", Toast.LENGTH_SHORT).show(); return; } - //TODO else + + int numberOfSpinners = categoriesSpinners.getChildCount(); + + if (numberOfSpinners < 3) { + Toast.makeText(view.getContext(), "Please choose a course category", Toast.LENGTH_SHORT).show(); + return; + } + + String maybeSemester = (String) ((AppCompatSpinnerWithoutDefault) + categoriesSpinners.getChildAt(numberOfSpinners - 2)).getSelectedItem(), + maybeCourse = (String) ((AppCompatSpinnerWithoutDefault) + categoriesSpinners.getChildAt(numberOfSpinners - 1)).getSelectedItem(); + + if (!maybeSemester.contains("εξάμηνο") && !maybeSemester.contains("Εξάμηνο")) { + Toast.makeText(view.getContext(), "Please choose a course category", Toast.LENGTH_SHORT).show(); + return; + } + + //Fixes course and semester + maybeCourse = maybeCourse.replaceAll("-", "").replace("(ΝΠΣ)", "").trim(); + maybeSemester = maybeSemester.replaceAll("-", "").trim(). + substring(0, 1); + + Intent intent = new Intent(UploadActivity.this, UploadFieldsBuilderActivity.class); + Bundle extras = new Bundle(); + extras.putString(BUNDLE_UPLOAD_FIELD_BUILDER_COURSE, maybeCourse); + extras.putString(BUNDLE_UPLOAD_FIELD_BUILDER_SEMESTER, maybeSemester); + intent.putExtras(extras); + startActivityForResult(intent, REQUEST_CODE_FIELDS_BUILDER); } }); titleDescriptionBuilderButton.setEnabled(false); @@ -291,7 +326,17 @@ public class UploadActivity extends BaseActivity { } } } else if (requestCode == REQUEST_CODE_CAMERA && data != null) { + if (resultCode == Activity.RESULT_CANCELED) { + return; + } //TODO + } else if (requestCode == REQUEST_CODE_FIELDS_BUILDER) { + if (resultCode == Activity.RESULT_CANCELED) { + return; + } + //TODO rename file + uploadTitle.setText(data.getStringExtra(RESULT_TITLE)); + uploadDescription.setText(data.getStringExtra(RESULT_DESCRIPTION)); } else { super.onActivityResult(requestCode, resultCode, data); } diff --git a/app/src/main/java/gr/thmmy/mthmmy/activities/upload/UploadFieldsBuilderActivity.java b/app/src/main/java/gr/thmmy/mthmmy/activities/upload/UploadFieldsBuilderActivity.java new file mode 100644 index 00000000..af9b2ec6 --- /dev/null +++ b/app/src/main/java/gr/thmmy/mthmmy/activities/upload/UploadFieldsBuilderActivity.java @@ -0,0 +1,181 @@ +package gr.thmmy.mthmmy.activities.upload; + +import android.app.Activity; +import android.content.Intent; +import android.os.Bundle; +import android.support.annotation.Nullable; +import android.view.View; +import android.widget.EditText; +import android.widget.LinearLayout; +import android.widget.RadioGroup; +import android.widget.Toast; + +import gr.thmmy.mthmmy.R; +import gr.thmmy.mthmmy.base.BaseActivity; +import timber.log.Timber; + +public class UploadFieldsBuilderActivity extends BaseActivity { + static final String BUNDLE_UPLOAD_FIELD_BUILDER_COURSE = "UPLOAD_FIELD_BUILDER_COURSE"; + static final String BUNDLE_UPLOAD_FIELD_BUILDER_SEMESTER = "UPLOAD_FIELD_BUILDER_SEMESTER"; + + static final String RESULT_FILENAME = "RESULT_FILENAME"; + static final String RESULT_TITLE = "RESULT_TITLE"; + static final String RESULT_DESCRIPTION = "RESULT_DESCRIPTION"; + + private String course, semester; + + //UI elements + private LinearLayout semesterChooserLinear; + private RadioGroup typeRadio, semesterRadio; + private EditText year; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_upload_fields_builder); + + Bundle extras = getIntent().getExtras(); + if (extras != null) { + course = extras.getString(BUNDLE_UPLOAD_FIELD_BUILDER_COURSE); + semester = extras.getString(BUNDLE_UPLOAD_FIELD_BUILDER_SEMESTER); + if (course == null || course.equals("") || semester == null || semester.equals("")) { + Toast.makeText(this, "Something went wrong!", Toast.LENGTH_SHORT).show(); + Timber.e("Bundle came empty in %s", UploadFieldsBuilderActivity.class.getSimpleName()); + + Intent returnIntent = new Intent(); + setResult(Activity.RESULT_CANCELED, returnIntent); + finish(); + } + } + + //Initialize toolbar + toolbar = findViewById(R.id.toolbar); + toolbar.setTitle("Upload fields builder"); + setSupportActionBar(toolbar); + if (getSupportActionBar() != null) { + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + getSupportActionBar().setDisplayShowHomeEnabled(true); + } + + createDrawer(); + drawer.setSelection(UPLOAD_ID); + + semesterChooserLinear = findViewById(R.id.upload_fields_builder_choose_semester); + semesterRadio = findViewById(R.id.upload_fields_builder_semester_radio_group); + year = findViewById(R.id.upload_fields_builder_year); + + typeRadio = findViewById(R.id.upload_fields_builder_type_radio_group); + typeRadio.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(RadioGroup group, int checkedId) { + if (checkedId == R.id.upload_fields_builder_radio_button_notes) { + semesterChooserLinear.setVisibility(View.GONE); + } else { + semesterChooserLinear.setVisibility(View.VISIBLE); + } + } + }); + + findViewById(R.id.upload_fields_builder_submit).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + int typeId = typeRadio.getCheckedRadioButtonId(), + semesterId = semesterRadio.getCheckedRadioButtonId(); + if (typeId == -1) { + Toast.makeText(view.getContext(), "Please choose a type for the upload", Toast.LENGTH_SHORT).show(); + return; + } else if (semesterChooserLinear.getVisibility() == View.VISIBLE && semesterId == -1) { + Toast.makeText(view.getContext(), "Please choose a semester for the upload", Toast.LENGTH_SHORT).show(); + return; + } else if (year.getText().toString().isEmpty()) { + Toast.makeText(view.getContext(), "Please choose a year for the upload", Toast.LENGTH_SHORT).show(); + return; + } + + Intent returnIntent = new Intent(); + returnIntent.putExtra(RESULT_FILENAME, buildFilename()); + returnIntent.putExtra(RESULT_TITLE, buildTitle()); + returnIntent.putExtra(RESULT_DESCRIPTION, buildDescription()); + setResult(Activity.RESULT_OK, returnIntent); + finish(); + } + }); + } + + @Nullable + private String buildFilename() { + switch (typeRadio.getCheckedRadioButtonId()) { + case R.id.upload_fields_builder_radio_button_exams: + return getGreeklishCourseName() + "_" + getGreeklishPeriod() + "_" + year.getText().toString(); + case R.id.upload_fields_builder_radio_button_exam_solutions: + return getGreeklishCourseName() + "_" + getGreeklishPeriod() + "_" + year.getText().toString() + "_Lyseis"; + case R.id.upload_fields_builder_radio_button_notes: + return getGreeklishCourseName() + "_" + year.getText().toString() + "_Shmeiwseis"; + default: + return null; + } + } + + @Nullable + private String buildTitle() { + switch (typeRadio.getCheckedRadioButtonId()) { + case R.id.upload_fields_builder_radio_button_exams: + return getMinifiedCourseName() + " - " + "Θέματα εξετάσεων " + getPeriod() + " " + year.getText().toString(); + case R.id.upload_fields_builder_radio_button_exam_solutions: + return getMinifiedCourseName() + " - " + "Λύσεις θεμάτων " + getPeriod() + " " + year.getText().toString(); + case R.id.upload_fields_builder_radio_button_notes: + return getMinifiedCourseName() + " - " + "Σημειώσεις παραδόσεων " + year.getText().toString(); + default: + return null; + } + } + + private String buildDescription() { + switch (typeRadio.getCheckedRadioButtonId()) { + case R.id.upload_fields_builder_radio_button_exams: + return "Θέματα εξετάσεων " + getPeriod() + " " + year.getText().toString() + " του μαθήματος \"" + course + "\""; + case R.id.upload_fields_builder_radio_button_exam_solutions: + return "Λύσεις των θεμάτων των εξετάσεων " + getPeriod() + " " + year.getText().toString() + " του μαθήματος \"" + course + "\""; + case R.id.upload_fields_builder_radio_button_notes: + return "Σημειώσεις των παραδόσεων του μαθήματος \"" + course + "\" από το " + year.getText().toString(); + default: + return null; + } + } + + private String getGreeklishCourseName() { + //TODO + return ""; + } + + private String getGreeklishPeriod() { + switch (semesterRadio.getCheckedRadioButtonId()) { + case R.id.upload_fields_builder_radio_button_feb: + return "FEB"; + case R.id.upload_fields_builder_radio_button_jun: + return "IOY"; + case R.id.upload_fields_builder_radio_button_sept: + return "SEP"; + default: + return null; + } + } + + private String getMinifiedCourseName() { + //TODO + return ""; + } + + private String getPeriod() { + switch (semesterRadio.getCheckedRadioButtonId()) { + case R.id.upload_fields_builder_radio_button_feb: + return "Φεβρουαρίου"; + case R.id.upload_fields_builder_radio_button_jun: + return "Ιουνίου"; + case R.id.upload_fields_builder_radio_button_sept: + return "Σεπτεμβρίου"; + default: + return null; + } + } +} \ No newline at end of file diff --git a/app/src/main/java/gr/thmmy/mthmmy/base/BaseActivity.java b/app/src/main/java/gr/thmmy/mthmmy/base/BaseActivity.java index faad57b6..e0c70e1f 100644 --- a/app/src/main/java/gr/thmmy/mthmmy/base/BaseActivity.java +++ b/app/src/main/java/gr/thmmy/mthmmy/base/BaseActivity.java @@ -44,7 +44,7 @@ import java.util.ArrayList; import gr.thmmy.mthmmy.R; import gr.thmmy.mthmmy.activities.AboutActivity; import gr.thmmy.mthmmy.activities.LoginActivity; -import gr.thmmy.mthmmy.activities.UploadActivity; +import gr.thmmy.mthmmy.activities.upload.UploadActivity; import gr.thmmy.mthmmy.activities.bookmarks.BookmarkActivity; import gr.thmmy.mthmmy.activities.downloads.DownloadsActivity; import gr.thmmy.mthmmy.activities.main.MainActivity; diff --git a/app/src/main/res/layout/activity_upload.xml b/app/src/main/res/layout/activity_upload.xml index 43e17fad..f32db5c5 100644 --- a/app/src/main/res/layout/activity_upload.xml +++ b/app/src/main/res/layout/activity_upload.xml @@ -6,7 +6,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" - tools:context=".activities.UploadActivity"> + tools:context=".activities.upload.UploadActivity"> <android.support.design.widget.AppBarLayout android:id="@+id/appbar" @@ -32,7 +32,7 @@ android:paddingEnd="@dimen/activity_horizontal_margin" android:paddingStart="@dimen/activity_horizontal_margin" app:layout_behavior="@string/appbar_scrolling_view_behavior" - tools:context="gr.thmmy.mthmmy.activities.UploadActivity"> + tools:context="gr.thmmy.mthmmy.activities.upload.UploadActivity"> <LinearLayout android:layout_width="match_parent" diff --git a/app/src/main/res/layout/activity_upload_fields_builder.xml b/app/src/main/res/layout/activity_upload_fields_builder.xml new file mode 100644 index 00000000..80966eaa --- /dev/null +++ b/app/src/main/res/layout/activity_upload_fields_builder.xml @@ -0,0 +1,176 @@ +<?xml version="1.0" encoding="utf-8"?> +<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:fitsSystemWindows="true" + tools:context=".activities.upload.UploadFieldsBuilderActivity"> + + <android.support.design.widget.AppBarLayout + android:id="@+id/appbar" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:paddingTop="@dimen/appbar_padding_top" + android:theme="@style/ToolbarTheme"> + + <android.support.v7.widget.Toolbar + android:id="@+id/toolbar" + android:layout_width="match_parent" + android:layout_height="?attr/actionBarSize" + android:background="?attr/colorPrimary" + android:gravity="center" + app:popupTheme="@style/ToolbarTheme" /> + </android.support.design.widget.AppBarLayout> + + <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:layout_gravity="top|start" + android:background="@color/background" + android:paddingEnd="@dimen/activity_horizontal_margin" + android:paddingStart="@dimen/activity_horizontal_margin" + app:layout_behavior="@string/appbar_scrolling_view_behavior" + tools:context="gr.thmmy.mthmmy.activities.upload.UploadFieldsBuilderActivity"> + + <LinearLayout + android:id="@+id/upload_fields_builder_content_linear" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="vertical"> + + <TextView + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginBottom="6dp" + android:layout_marginTop="6dp" + android:gravity="center" + android:text="@string/upload_fields_builder_type_radio_buttons_title" + android:textAlignment="center" + android:textColor="@color/accent" /> + + <RadioGroup + android:id="@+id/upload_fields_builder_type_radio_group" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginBottom="6dp" + android:layout_marginTop="6dp" + android:orientation="vertical"> + + <android.support.v7.widget.AppCompatRadioButton + android:id="@+id/upload_fields_builder_radio_button_exams" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_weight="1" + android:gravity="center_vertical" + android:text="@string/upload_fields_builder_radio_button_exams" + android:textColor="@color/primary_text" /> + + <android.support.v7.widget.AppCompatRadioButton + android:id="@+id/upload_fields_builder_radio_button_exam_solutions" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_weight="1" + android:gravity="center_vertical" + android:text="@string/upload_fields_builder_radio_button_exam_solutions" + android:textColor="@color/primary_text" /> + + <android.support.v7.widget.AppCompatRadioButton + android:id="@+id/upload_fields_builder_radio_button_notes" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_weight="1" + android:gravity="center_vertical" + android:text="@string/upload_fields_builder_radio_button_notes" + android:textColor="@color/primary_text" /> + </RadioGroup> + + <LinearLayout + android:id="@+id/upload_fields_builder_choose_semester" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="vertical"> + + <TextView + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginBottom="6dp" + android:layout_marginTop="6dp" + android:gravity="center" + android:text="@string/upload_fields_builder_select_semester_title" + android:textAlignment="center" + android:textColor="@color/accent" /> + + <RadioGroup + android:id="@+id/upload_fields_builder_semester_radio_group" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginBottom="6dp" + android:layout_marginTop="6dp" + android:orientation="vertical"> + + <android.support.v7.widget.AppCompatRadioButton + android:id="@+id/upload_fields_builder_radio_button_feb" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_weight="1" + android:gravity="center_vertical" + android:text="@string/upload_fields_builder_radio_button_feb" + android:textColor="@color/primary_text" /> + + <android.support.v7.widget.AppCompatRadioButton + android:id="@+id/upload_fields_builder_radio_button_jun" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_weight="1" + android:gravity="center_vertical" + android:text="@string/upload_fields_builder_radio_button_exam_jun" + android:textColor="@color/primary_text" /> + + <android.support.v7.widget.AppCompatRadioButton + android:id="@+id/upload_fields_builder_radio_button_sept" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_weight="1" + android:gravity="center_vertical" + android:text="@string/upload_fields_builder_radio_button_sept" + android:textColor="@color/primary_text" /> + </RadioGroup> + </LinearLayout> + + <TextView + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginBottom="6dp" + android:layout_marginTop="6dp" + android:gravity="center" + android:text="@string/upload_fields_builder_select_year_title" + android:textAlignment="center" + android:textColor="@color/accent" /> + + + <android.support.design.widget.TextInputLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginBottom="6dp" + android:layout_marginTop="6dp"> + + <EditText + android:id="@+id/upload_fields_builder_year" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:ems="4" + android:hint="@string/upload_fields_builder_year_hint" + android:inputType="number" /> + </android.support.design.widget.TextInputLayout> + + <android.support.v7.widget.AppCompatButton + android:id="@+id/upload_fields_builder_submit" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="end" + android:text="@string/upload_fields_builder_submit" + android:textColor="@color/accent" /> + </LinearLayout> + </ScrollView> +</android.support.design.widget.CoordinatorLayout> \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 149526ec..309f24ce 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -116,13 +116,18 @@ <string name="upload_upload_button">Upload</string> <string name="upload_spinners_hint">Select a category</string> - <!--Upload Dialog--> - <string name="dialog_upload_radio_buttons_title">Select type of upload</string> - <string name="dialog_upload_radio_button_exams">Exam subjects</string> - <string name="dialog_upload_radio_button_exam_solutions">Exam solutions</string> - <string name="dialog_upload_radio_button_notes">Course notes</string> - <string name="dialog_upload_select_lesson_title">Select the course</string> - <string name="dialog_upload_select_semester">Select the semester</string> + <!--Upload Fields Builder Activity--> + <string name="upload_fields_builder_type_radio_buttons_title">Select type of upload</string> + <string name="upload_fields_builder_radio_button_exams">Exam subjects</string> + <string name="upload_fields_builder_radio_button_exam_solutions">Exam solutions</string> + <string name="upload_fields_builder_radio_button_notes">Course notes</string> + <string name="upload_fields_builder_select_semester_title">Select period</string> + <string name="upload_fields_builder_radio_button_feb">February</string> + <string name="upload_fields_builder_radio_button_exam_jun">June</string> + <string name="upload_fields_builder_radio_button_sept">September</string> + <string name="upload_fields_builder_select_year_title">Select year</string> + <string name="upload_fields_builder_year_hint">Year</string> + <string name="upload_fields_builder_submit">Build</string> <!--Settings Activity--> <string name="action_settings">Settings</string> From 540d3d45ad56066cfb0d1098db8696d2339e72f9 Mon Sep 17 00:00:00 2001 From: Apostolof <apotwohd@gmail.com> Date: Tue, 17 Jul 2018 13:20:54 +0300 Subject: [PATCH 3/8] Minor improvements and fixes for uploads --- app/src/main/AndroidManifest.xml | 2 +- .../activities/upload/UploadActivity.java | 1 - .../upload/UploadFieldsBuilderActivity.java | 49 ++++++++++++++++--- 3 files changed, 43 insertions(+), 9 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 199386e1..2ea54c11 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -107,7 +107,7 @@ </activity> <activity android:name=".activities.upload.UploadFieldsBuilderActivity" - android:parentActivityName=".activities.main.MainActivity" + android:parentActivityName=".activities.upload.UploadActivity" android:theme="@style/AppTheme.NoActionBar"> <meta-data android:name="android.support.PARENT_ACTIVITY" diff --git a/app/src/main/java/gr/thmmy/mthmmy/activities/upload/UploadActivity.java b/app/src/main/java/gr/thmmy/mthmmy/activities/upload/UploadActivity.java index 248c8106..3f25dd94 100644 --- a/app/src/main/java/gr/thmmy/mthmmy/activities/upload/UploadActivity.java +++ b/app/src/main/java/gr/thmmy/mthmmy/activities/upload/UploadActivity.java @@ -14,7 +14,6 @@ import android.support.annotation.NonNull; import android.support.v7.app.AlertDialog; import android.support.v7.preference.PreferenceManager; import android.support.v7.widget.AppCompatButton; -import android.util.Log; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; diff --git a/app/src/main/java/gr/thmmy/mthmmy/activities/upload/UploadFieldsBuilderActivity.java b/app/src/main/java/gr/thmmy/mthmmy/activities/upload/UploadFieldsBuilderActivity.java index af9b2ec6..a7454cad 100644 --- a/app/src/main/java/gr/thmmy/mthmmy/activities/upload/UploadFieldsBuilderActivity.java +++ b/app/src/main/java/gr/thmmy/mthmmy/activities/upload/UploadFieldsBuilderActivity.java @@ -4,17 +4,22 @@ import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.support.annotation.Nullable; +import android.support.v7.app.AppCompatActivity; +import android.support.v7.widget.Toolbar; +import android.text.Editable; +import android.text.TextWatcher; import android.view.View; import android.widget.EditText; import android.widget.LinearLayout; import android.widget.RadioGroup; import android.widget.Toast; +import java.util.Calendar; + import gr.thmmy.mthmmy.R; -import gr.thmmy.mthmmy.base.BaseActivity; import timber.log.Timber; -public class UploadFieldsBuilderActivity extends BaseActivity { +public class UploadFieldsBuilderActivity extends AppCompatActivity { static final String BUNDLE_UPLOAD_FIELD_BUILDER_COURSE = "UPLOAD_FIELD_BUILDER_COURSE"; static final String BUNDLE_UPLOAD_FIELD_BUILDER_SEMESTER = "UPLOAD_FIELD_BUILDER_SEMESTER"; @@ -24,11 +29,43 @@ public class UploadFieldsBuilderActivity extends BaseActivity { private String course, semester; - //UI elements private LinearLayout semesterChooserLinear; private RadioGroup typeRadio, semesterRadio; private EditText year; + private TextWatcher customYearWatcher = new TextWatcher() { + + @Override + public void onTextChanged(CharSequence s, int start, int before, int count) { + String working = s.toString(); + boolean isValid = true; + + if (working.length() == 4) { + int currentYear = Calendar.getInstance().get(Calendar.YEAR); + int inputYear = Integer.parseInt(working); + + isValid = inputYear <= currentYear && inputYear > 2000; + } else { + isValid = false; + } + + if (!isValid) { + year.setError("Please enter a valid year"); + } else { + year.setError(null); + } + + } + + @Override + public void afterTextChanged(Editable s) { + } + + @Override + public void beforeTextChanged(CharSequence s, int start, int count, int after) { + } + }; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -49,7 +86,7 @@ public class UploadFieldsBuilderActivity extends BaseActivity { } //Initialize toolbar - toolbar = findViewById(R.id.toolbar); + Toolbar toolbar = findViewById(R.id.toolbar); toolbar.setTitle("Upload fields builder"); setSupportActionBar(toolbar); if (getSupportActionBar() != null) { @@ -57,12 +94,10 @@ public class UploadFieldsBuilderActivity extends BaseActivity { getSupportActionBar().setDisplayShowHomeEnabled(true); } - createDrawer(); - drawer.setSelection(UPLOAD_ID); - semesterChooserLinear = findViewById(R.id.upload_fields_builder_choose_semester); semesterRadio = findViewById(R.id.upload_fields_builder_semester_radio_group); year = findViewById(R.id.upload_fields_builder_year); + year.addTextChangedListener(customYearWatcher); typeRadio = findViewById(R.id.upload_fields_builder_type_radio_group); typeRadio.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { From 3631bd9b665c16294738234af404b3f62b4dd6b4 Mon Sep 17 00:00:00 2001 From: Ezerous <ezerous@gmail.com> Date: Tue, 17 Jul 2018 13:31:19 +0300 Subject: [PATCH 4/8] Updated libraries in About (plus minor stuff) --- VERSION | 1 - app/build.gradle | 4 ++-- app/src/main/assets/apache_libraries.html | 3 +++ app/src/main/res/layout/activity_settings.xml | 1 + 4 files changed, 6 insertions(+), 3 deletions(-) delete mode 100644 VERSION diff --git a/VERSION b/VERSION deleted file mode 100644 index 31e5c843..00000000 --- a/VERSION +++ /dev/null @@ -1 +0,0 @@ -1.3.3 diff --git a/app/build.gradle b/app/build.gradle index cb816145..cd627a53 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -10,8 +10,8 @@ android { applicationId "gr.thmmy.mthmmy" minSdkVersion 19 targetSdkVersion 27 - versionCode 12 - versionName "1.4.0" + versionCode 13 + versionName "1.4.1" archivesBaseName = "mTHMMY-v$versionName" } diff --git a/app/src/main/assets/apache_libraries.html b/app/src/main/assets/apache_libraries.html index fd866258..c739366e 100644 --- a/app/src/main/assets/apache_libraries.html +++ b/app/src/main/assets/apache_libraries.html @@ -62,6 +62,9 @@ <li> <h5><a href="https://github.com/JakeWharton/timber">Timber</a> v4.7.0 (Copyright ©2013 Jake Wharton)</h5> </li> + <li> + <h5><a href="https://github.com/gotev/android-upload-service">Android Upload Service</a> v3.4.2 (Copyright ©2013-2018 Aleksandar Gotev)</h5> + </li> </ul> diff --git a/app/src/main/res/layout/activity_settings.xml b/app/src/main/res/layout/activity_settings.xml index a6a0513b..76fea163 100644 --- a/app/src/main/res/layout/activity_settings.xml +++ b/app/src/main/res/layout/activity_settings.xml @@ -28,6 +28,7 @@ android:id="@+id/pref_container" android:layout_width="match_parent" android:layout_height="match_parent" + android:background="@color/primary_light" app:layout_behavior="@string/appbar_scrolling_view_behavior" /> </android.support.design.widget.CoordinatorLayout> \ No newline at end of file From 87a3759904b9fb8d7e5363b8ecf75416e22515da Mon Sep 17 00:00:00 2001 From: Apostolof <apotwohd@gmail.com> Date: Tue, 17 Jul 2018 16:22:38 +0300 Subject: [PATCH 5/8] Uploads system improvements --- .../activities/upload/UploadActivity.java | 125 ++++++++- .../upload/UploadFieldsBuilderActivity.java | 260 +++++++++++++++++- 2 files changed, 370 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/gr/thmmy/mthmmy/activities/upload/UploadActivity.java b/app/src/main/java/gr/thmmy/mthmmy/activities/upload/UploadActivity.java index 3f25dd94..08f3b891 100644 --- a/app/src/main/java/gr/thmmy/mthmmy/activities/upload/UploadActivity.java +++ b/app/src/main/java/gr/thmmy/mthmmy/activities/upload/UploadActivity.java @@ -1,6 +1,7 @@ package gr.thmmy.mthmmy.activities.upload; import android.app.Activity; +import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.SharedPreferences; @@ -11,6 +12,7 @@ import android.os.Bundle; import android.provider.MediaStore; import android.provider.OpenableColumns; import android.support.annotation.NonNull; +import android.support.annotation.Nullable; import android.support.v7.app.AlertDialog; import android.support.v7.preference.PreferenceManager; import android.support.v7.widget.AppCompatButton; @@ -23,12 +25,21 @@ import android.widget.ProgressBar; import android.widget.Toast; import net.gotev.uploadservice.MultipartUploadRequest; +import net.gotev.uploadservice.ServerResponse; +import net.gotev.uploadservice.UploadInfo; import net.gotev.uploadservice.UploadNotificationConfig; +import net.gotev.uploadservice.UploadStatusDelegate; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; +import java.io.BufferedInputStream; +import java.io.BufferedOutputStream; +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; import java.util.ArrayList; import java.util.Arrays; @@ -46,6 +57,7 @@ import static gr.thmmy.mthmmy.activities.settings.SettingsActivity.UPLOADING_APP import static gr.thmmy.mthmmy.activities.upload.UploadFieldsBuilderActivity.BUNDLE_UPLOAD_FIELD_BUILDER_COURSE; import static gr.thmmy.mthmmy.activities.upload.UploadFieldsBuilderActivity.BUNDLE_UPLOAD_FIELD_BUILDER_SEMESTER; import static gr.thmmy.mthmmy.activities.upload.UploadFieldsBuilderActivity.RESULT_DESCRIPTION; +import static gr.thmmy.mthmmy.activities.upload.UploadFieldsBuilderActivity.RESULT_FILENAME; import static gr.thmmy.mthmmy.activities.upload.UploadFieldsBuilderActivity.RESULT_TITLE; public class UploadActivity extends BaseActivity { @@ -64,6 +76,7 @@ public class UploadActivity extends BaseActivity { private ArrayList<String> bundleCategory; private String categorySelected = "-1"; private String uploaderProfileIndex = "1"; + private String uploadFilename; private Uri fileUri; private String fileIcon; @@ -223,17 +236,65 @@ public class UploadActivity extends BaseActivity { tmpDescriptionText += uploadedFrommThmmyPromptHtml; } + String tempFilePath = null; + if (uploadFilename != null) { + tempFilePath = createTempFile(uploadFilename); + if (tempFilePath == null) { + //Something went wrong, abort + return; + } + } + try { + final String finalTempFilePath = tempFilePath; new MultipartUploadRequest(view.getContext(), uploadIndexUrl) .setUtf8Charset() .addParameter("tp-dluploadtitle", uploadTitleText) .addParameter("tp-dluploadcat", categorySelected) .addParameter("tp-dluploadtext", tmpDescriptionText) - .addFileToUpload(fileUri.toString(), "tp-dluploadfile") + .addFileToUpload(tempFilePath == null + ? fileUri.toString() + : tempFilePath + , "tp-dluploadfile") .addParameter("tp_dluploadicon", fileIcon) .addParameter("tp-uploaduser", uploaderProfileIndex) .setNotificationConfig(new UploadNotificationConfig()) - .setMaxRetries(2).startUpload(); + .setMaxRetries(2) + .setDelegate(new UploadStatusDelegate() { + @Override + public void onProgress(Context context, UploadInfo uploadInfo) { + } + + @Override + public void onError(Context context, UploadInfo uploadInfo, ServerResponse serverResponse, + Exception exception) { + Toast.makeText(context, "Upload failed", Toast.LENGTH_SHORT).show(); + if (finalTempFilePath != null) { + if (!deleteTempFile(finalTempFilePath)) { + Toast.makeText(context, "Failed to delete temp file", Toast.LENGTH_SHORT).show(); + } + } + } + + @Override + public void onCompleted(Context context, UploadInfo uploadInfo, ServerResponse serverResponse) { + if (finalTempFilePath != null) { + if (!deleteTempFile(finalTempFilePath)) { + Toast.makeText(context, "Failed to delete temp file", Toast.LENGTH_SHORT).show(); + } + } + } + + @Override + public void onCancelled(Context context, UploadInfo uploadInfo) { + if (finalTempFilePath != null) { + if (!deleteTempFile(finalTempFilePath)) { + Toast.makeText(context, "Failed to delete temp file", Toast.LENGTH_SHORT).show(); + } + } + } + }) + .startUpload(); } catch (Exception exception) { Timber.e(exception, "AndroidUploadService: %s", exception.getMessage()); } @@ -298,7 +359,7 @@ public class UploadActivity extends BaseActivity { @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { - if (requestCode == REQUEST_CODE_CHOOSE_FILE && data != null) { + if (requestCode == REQUEST_CODE_CHOOSE_FILE && resultCode == Activity.RESULT_OK && data != null) { fileUri = data.getData(); if (fileUri != null) { String filename = filenameFromUri(fileUri); @@ -333,7 +394,8 @@ public class UploadActivity extends BaseActivity { if (resultCode == Activity.RESULT_CANCELED) { return; } - //TODO rename file + + uploadFilename = data.getStringExtra(RESULT_FILENAME); uploadTitle.setText(data.getStringExtra(RESULT_TITLE)); uploadDescription.setText(data.getStringExtra(RESULT_DESCRIPTION)); } else { @@ -362,6 +424,61 @@ public class UploadActivity extends BaseActivity { return filename; } + @Nullable + private String createTempFile(String newFilename) { + String oldFilename = filenameFromUri(fileUri); + String fileExtension = oldFilename.substring(oldFilename.indexOf(".")); + String destinationFilename = android.os.Environment.getExternalStorageDirectory().getPath() + + File.separatorChar + "~tmp_mThmmy_uploads" + File.separatorChar + newFilename + fileExtension; + + File tempDirectory = new File(android.os.Environment.getExternalStorageDirectory().getPath() + + File.separatorChar + "~tmp_mThmmy_uploads"); + + if (!tempDirectory.exists()) { + if (!tempDirectory.mkdirs()) { + //TODO timber message? + Toast.makeText(this, "Couldn't create temporary directory", Toast.LENGTH_SHORT).show(); + return null; + } + } + + InputStream inputStream; + BufferedInputStream bufferedInputStream = null; + BufferedOutputStream bufferedOutputStream = null; + + try { + inputStream = getContentResolver().openInputStream(fileUri); + if (inputStream == null) { + //TODO timber message? + return null; + } + + bufferedInputStream = new BufferedInputStream(inputStream); + bufferedOutputStream = new BufferedOutputStream(new FileOutputStream(destinationFilename, false)); + byte[] buf = new byte[1024]; + bufferedInputStream.read(buf); + do { + bufferedOutputStream.write(buf); + } while (bufferedInputStream.read(buf) != -1); + } catch (IOException exception) { + exception.printStackTrace(); + } finally { + try { + if (bufferedInputStream != null) bufferedInputStream.close(); + if (bufferedOutputStream != null) bufferedOutputStream.close(); + } catch (IOException exception) { + exception.printStackTrace(); + } + } + + return destinationFilename; + } + + private boolean deleteTempFile(String destinationFilename) { + File file = new File(destinationFilename); + return file.delete(); + } + private class CustomOnItemSelectedListener implements AdapterView.OnItemSelectedListener { private ArrayList<UploadCategory> parentCategories, childCategories; diff --git a/app/src/main/java/gr/thmmy/mthmmy/activities/upload/UploadFieldsBuilderActivity.java b/app/src/main/java/gr/thmmy/mthmmy/activities/upload/UploadFieldsBuilderActivity.java index a7454cad..055971df 100644 --- a/app/src/main/java/gr/thmmy/mthmmy/activities/upload/UploadFieldsBuilderActivity.java +++ b/app/src/main/java/gr/thmmy/mthmmy/activities/upload/UploadFieldsBuilderActivity.java @@ -38,7 +38,7 @@ public class UploadFieldsBuilderActivity extends AppCompatActivity { @Override public void onTextChanged(CharSequence s, int start, int before, int count) { String working = s.toString(); - boolean isValid = true; + boolean isValid; if (working.length() == 4) { int currentYear = Calendar.getInstance().get(Calendar.YEAR); @@ -178,11 +178,6 @@ public class UploadFieldsBuilderActivity extends AppCompatActivity { } } - private String getGreeklishCourseName() { - //TODO - return ""; - } - private String getGreeklishPeriod() { switch (semesterRadio.getCheckedRadioButtonId()) { case R.id.upload_fields_builder_radio_button_feb: @@ -196,11 +191,6 @@ public class UploadFieldsBuilderActivity extends AppCompatActivity { } } - private String getMinifiedCourseName() { - //TODO - return ""; - } - private String getPeriod() { switch (semesterRadio.getCheckedRadioButtonId()) { case R.id.upload_fields_builder_radio_button_feb: @@ -213,4 +203,252 @@ public class UploadFieldsBuilderActivity extends AppCompatActivity { return null; } } + + @Nullable + private String getGreeklishCourseName() { + return getGreeklishOrMinifiedCourseName(true); + } + + @Nullable + private String getMinifiedCourseName() { + return getGreeklishOrMinifiedCourseName(false); + } + + + @Nullable + private String getGreeklishOrMinifiedCourseName(boolean greeklish) { + if (course.contains("Συστήματα Υπολογιστών (Υπολογιστικά Συστήματα)")) { + return greeklish ? "sys_ypologistwn" : "Συσ. Υπολογιστών"; + } else if (course.contains("Τεχνική Μηχανική")) { + return greeklish ? "texn_mhxan" : "Τεχν. Μηχαν."; + } else if (course.contains("Διαφορικές Εξισώσεις")) { + return greeklish ? "diaforikes" : "Διαφορικές"; + } else if (course.contains("Θεωρία Πιθανοτήτων και Στατιστική")) { + return greeklish ? "pithanothtes" : "Πιθανότητες"; + } else if (course.contains("Εφαρμοσμένα Μαθηματικά Ι")) { + return greeklish ? "efarmosmena_math_I" : "Εφαρμοσμένα 1"; + } else if (course.contains("Ηλεκτρικά Κυκλώματα ΙΙ")) { + return greeklish ? "kyklwmata_II" : "Κυκλώματα 2"; + } else if (course.contains("Ηλεκτρολογικά Υλικά")) { + return greeklish ? "ylika" : "Ηλεκτρ. Υλικά"; + } else if (course.contains("Ηλεκτρομαγνητικό Πεδίο Ι")) { + return greeklish ? "pedio_I" : "Πεδίο 1"; + } else if (course.contains("Θεωρία Σημάτων και Γραμμικών Συστημάτων")) { + return greeklish ? "analog_shma" : "Σύματα & Συστήματα"; + } else if (course.contains("Προγραμματιστικές Τεχνικές")) { + return greeklish ? "cpp" : "Προγραμματ. Τεχν."; + } else if (course.contains("Αριθμητική Ανάλυση")) { + return greeklish ? "arith_anal" : "Αριθμ. Ανάλυση"; + } else if (course.contains("Αρχιτεκτονική Υπολογιστών")) { + return greeklish ? "arx_ypologistwn" : "Αρχ. Υπολογιστών"; + } else if (course.contains("Εισαγωγή στην Ενεργειακή Τεχνολογία Ι")) { + return greeklish ? "EET_I" : "ΕΕΤ 1"; + } else if (course.contains("Ηλεκτρικά Κυκλώματα ΙΙΙ")) { + return greeklish ? "kyklwmata_I" : "Κυκλώματα 3"; + } else if (course.contains("Ηλεκτρομαγνητικό Πεδίο ΙΙ")) { + return greeklish ? "pedio_II" : "Πεδίο 2"; + } else if (course.contains("Στοχαστικό Σήμα")) { + return greeklish ? "stox_shma" : "Στοχ. Σήμα"; + } else if (course.contains("Ψηφιακά Συστήματα Ι")) { + return greeklish ? "pshfiaka_I" : "Ψηφιακά 1"; + } else if (course.contains("Αναλογικές Τηλεπικοινωνίες (πρώην Τηλεπικοινωνιακά Συστήματα Ι)")) { + return greeklish ? "anal_thlep" : "Αναλογικές Τηλεπ."; + } else if (course.contains("Διάδοση Ηλεκτρομαγνητικού Κύματος Ι (πρώην Πεδίο ΙΙΙ)")) { + return greeklish ? "diadosi_1" : "Διάδοση 1"; + } else if (course.contains("Δομές Δεδομένων")) { + return greeklish ? "dom_dedomenwn" : "Δομ. Δεδομ."; + } else if (course.contains("Εισαγωγή στην Ενεργειακή Τεχνολογία ΙΙ")) { + return greeklish ? "EET_2" : "ΕΕΤ2"; + } else if (course.contains("Ηλεκτρικές Μετρήσεις Ι")) { + return greeklish ? "metrhseis_1" : "Μετρήσεις 1"; + } else if (course.contains("Ηλεκτρονική ΙΙ")) { + return greeklish ? "hlektronikh_2" : "Ηλεκτρονική 2"; + } else if (course.contains("Συστήματα Αυτομάτου Ελέγχου Ι")) { + return greeklish ? "SAE_1" : "ΣΑΕ 1"; + } else if (course.contains("Γραμμική Άλγεβρα")) { + return greeklish ? "grammikh_algebra" : "Γραμμ. Άλγεβρ."; + } else if (course.contains("Δομημένος Προγραμματισμός")) { + return greeklish ? "C" : "Δομ. Προγραμμ."; + } else if (course.contains("Λογική Σχεδίαση")) { + return greeklish ? "logiki_sxediash" : "Λογική Σχεδίαση"; + } else if (course.contains("Λογισμός Ι")) { + return greeklish ? "logismos_I" : "Λογισμός 1"; + } else if (course.contains("Τεχνικές Σχεδίασης με Η/Υ")) { + return greeklish ? "sxedio" : "Σχέδιο"; + } else if (course.contains("Φυσική Ι")) { + return greeklish ? "fysikh_I" : "Φυσική 1"; + } else if (course.contains("Αντικειμενοστραφής Προγραμματισμός")) { + return greeklish ? "OOP" : "Αντικειμενοστραφής"; + } else if (course.contains("Εφαρμοσμένη Θερμοδυναμική")) { + return greeklish ? "thermodynamikh" : "Θερμοδυναμική"; + } else if (course.contains("Ηλεκτρικά Κυκλώματα Ι")) { + return greeklish ? "kyklwmata_I" : "Κυκλώματα 1"; + } else if (course.contains("Λογισμός ΙΙ")) { + return greeklish ? "logismos_II" : "Λογισμός 2"; + } else if (course.contains("Οργάνωση Υπολογιστών")) { + return greeklish ? "org_ypol" : "Οργάνωση Υπολ."; + } else if (course.contains("Ηλεκτρονική Ι")) { + return greeklish ? "hlektronikh_1" : "Ηλεκτρονική 1"; + } else if (course.contains("Διακριτά μαθηματικά")) { + return greeklish ? "diakrita" : "Διακριτά Μαθηματικά"; + } else if (course.contains("Σήματα και Συστήματα")) { + return greeklish ? "analog_shma" : "Σύματα & Συστήματα"; + } else if (course.contains("Εισαγωγή στις εφαρμογές Πυρηνικής Τεχνολογίας")) { + return greeklish ? "Intro_Purhnikh_Texn" : "Εισ. Πυρηνικη Τεχν."; + } else if (course.contains("Επιχειρησιακή Έρευνα")) { + return greeklish ? "epixeirisiaki" : "Επιχειρησιακή Έρευνα"; + } else if (course.contains("Ημιαγωγά Υλικά: Θεωρία-Διατάξεις")) { + return greeklish ? "Hmiagwga_Ylika" : "Ημιαγωγά Υλικά"; + } else if (course.contains("Μετάδοση Θερμότητας")) { + return greeklish ? "metadosi_therm" : "Μετάδοση Θερμ."; + } else if (course.contains("Συστήματα Ηλεκτρικής Ενέργειας Ι")) { + return greeklish ? "SHE_I" : "ΣΗΕ 1"; + } else if (course.contains("Υψηλές Τάσεις Ι")) { + return greeklish ? "ypshles_I" : "Υψηλές 1"; + } else if (course.contains("Τεχνολογία Ηλεκτροτεχνικών Υλικών")) { + return greeklish ? "Hlektrotexnika_Ylika" : "Ηλεκτροτεχνικά Υλικά"; + } else if (course.contains("Ηλεκτρικές Μηχανές Α'")) { + return greeklish ? "mhxanes_A" : "Μηχανές Α"; + } else if (course.contains("Σταθμοί Παραγωγής Ηλεκτρικής Ενέργειας")) { + return greeklish ? "SPHE" : "ΣΠΗΕ"; + } else if (course.contains("Συστήματα Ηλεκτρικής Ενέργειας ΙΙ")) { + return greeklish ? "SHE_II" : "ΣΗΕ 2"; + } else if (course.contains("Υψηλές Τάσεις ΙΙ")) { + return greeklish ? "ypshles_II" : "Υψηλές 2"; + } else if (course.contains("Διαχείριση Συστημάτων Ηλεκτρικής Ενέργειας")) { + return greeklish ? "ymes" : "ΥΜΕΣ"; + } else if (course.contains("Υψηλές Τάσεις ΙΙΙ")) { + return greeklish ? "ypshles_III" : "Υψηλές 3"; + } else if (course.contains("Ανάλυση Συστημάτων Ηλεκτρικής Ενέργειας")) { + return greeklish ? "ASHE" : "ΑΣΗΕ"; + } else if (course.contains("Ηλεκτρικές Μηχανές Β'")) { + return greeklish ? "mhxanes_B" : "Μηχανές Β"; + } else if (course.contains("Ηλεκτρονικά Ισχύος Ι")) { + return greeklish ? "isxyos_I" : "Ισχύος 1"; + } else if (course.contains("Συστήματα Ηλεκτρικής Ενέργειας ΙΙΙ")) { + return greeklish ? "SHE_III" : "ΣΗΕ 3"; + } else if (course.contains("Υπολογιστικές Μέθοδοι στα Ενεργειακά Συστήματα")) { + return greeklish ? "ymes" : "ΥΜΕΣ"; + } else if (course.contains("Υψηλές Τάσεις 4")) { + return greeklish ? "ypshles_IV" : "Υψηλές 4"; + } else if (course.contains("Ηλεκτρονικά Ισχύος ΙΙ")) { + return greeklish ? "isxyos_II" : "Ισχύος 2"; + } else if (course.contains("Ανάλυση και Σχεδίαση Αλγορίθμων")) { + return greeklish ? "algorithms" : "Αλγόριθμοι"; + } else if (course.contains("Διακριτά Μαθηματικά")) { + return greeklish ? "diakrita" : "Διακριτά Μαθηματικά"; + } else if (course.contains("Κβαντική Φυσική")) { + return greeklish ? "kvantikh" : "Κβαντική"; + } else if (course.contains("Ρομποτική")) { + return greeklish ? "rompotikh" : "Ρομποτική"; + } else if (course.contains("Τεχνικές Βελτιστοποίησης")) { + return greeklish ? "veltistopoihsh" : "Βελτιστοποίηση"; + } else if (course.contains("Ηλεκτρικές Μετρήσεις ΙΙ")) { + return greeklish ? "metrhseis_II" : "Μετρήσεις 2"; + } else if (course.contains("Ηλεκτρονική ΙΙΙ")) { + return greeklish ? "hlektronikh_III" : "Ηλεκτρονική 3"; + } else if (course.contains("Συστήματα Αυτομάτου Ελέγχου ΙΙ")) { + return greeklish ? "SAE_II" : "ΣΑΕ 2"; + } else if (course.contains("Ψηφιακά Συστήματα ΙΙ")) { + return greeklish ? "pshfiaka_II" : "Ψηφιακά 2"; + } else if (course.contains("Ανάλυση Χρονοσειρών")) { + return greeklish ? "xronoseires" : "Χρονοσειρές"; + } else if (course.contains("Θεωρία Υπολογισμών και Αλγορίθμων")) { + return greeklish ? "thya" : "ΘΥΑ"; + } else if (course.contains("Παράλληλα και Κατανεμημένα Συστήματα")) { + return greeklish ? "parallhla" : "Παράλληλα"; + } else if (course.contains("Προγραμματιζόμενα Κυκλώματα ASIC")) { + return greeklish ? "asic" : "ASIC"; + } else if (course.contains("Προσομοίωση και Μοντελοποίηση Συστημάτων")) { + return greeklish ? "montelopoihsh" : "Μοντελοποίηση"; + } else if (course.contains("Συστήματα Αυτομάτου Ελέγχου ΙΙI")) { + return greeklish ? "SAE_III" : "ΣΑΕ 3"; + } else if (course.contains("Σύνθεση Ενεργών και Παθητικών Κυκλωμάτων")) { + return greeklish ? "synthesh" : "Σύνθεση"; + } else if (course.contains("Δίκτυα Υπολογιστών Ι")) { + return greeklish ? "diktya_I" : "Δίκτυα 1"; + } else if (course.contains("Λειτουργικά Συστήματα")) { + return greeklish ? "OS" : "Λειτουργικά"; + } else if (course.contains("Συστήματα Μικροϋπολογιστών")) { + return greeklish ? "mikro_I" : "Μίκρο 1"; + } else if (course.contains("Ασαφή Συστήματα")) { + return greeklish ? "asafh" : "Ασαφή"; + } else if (course.contains("Γραφική με Υπολογιστές")) { + return greeklish ? "grafikh" : "Γραφική"; + } else if (course.contains("Ενσωματωμένα Συστήματα Πραγματικού Χρόνου")) { + return greeklish ? "enswmatwmena" : "Ενσωματωμένα"; + } else if (course.contains("Τηλεπικοινωνιακή Ηλεκτρονική")) { + return greeklish ? "tilep_ilektr" : "Τηλεπ. Ηλεκτρ."; + } else if (course.contains("Ψηφιακά Συστήματα ΙΙΙ")) { + return greeklish ? "pshfiaka_III" : "Ψηφιακά 3"; + } else if (course.contains("Ψηφιακή Επεξεργασία Εικόνας")) { + return greeklish ? "psee" : "ΨΕΕ"; + } else if (course.contains("Δίκτυα Υπολογιστών ΙΙ")) { + return greeklish ? "diktya_II" : "Δίκτυα 2"; + } else if (course.contains("Μικροεπεξεργαστές και Περιφερειακά")) { + return greeklish ? "mikro_II" : "Μίκρο 2"; + } else if (course.contains("Τεχνολογία Λογισμικού")) { + return greeklish ? "SE" : "Τεχνολογία Λογισμικού"; + } else if (course.contains("Ψηφιακά Φίλτρα")) { + return greeklish ? "filtra" : "Φίλτρα"; + } else if (course.contains("Αναγνώριση Προτύπων")) { + return greeklish ? "protipa" : "Αναγνώριση Προτύπων"; + } else if (course.contains("Ασφάλεια Πληροφοριακών Συστημάτων")) { + return greeklish ? "asfaleia" : "Ασφάλεια"; + } else if (course.contains("Βάσεις Δεδομένων")) { + return greeklish ? "vaseis" : "Βάσεις"; + } else if (course.contains("Βιομηχανική Πληροφορική")) { + return greeklish ? "viomix_plir" : "Βιομηχανική Πληρ"; + } else if (course.contains("Ευφυή Συστήματα Ρομπότ")) { + return greeklish ? "eufuh" : "Ευφυή"; + } else if (course.contains("Συστήματα Πολυμέσων και Εικονική Πραγματικότητα")) { + return greeklish ? "polymesa" : "Πολυμέσα"; + } else if (course.contains("Σχεδίαση Συστημάτων VLSI")) { + return greeklish ? "VLSI" : "VLSI"; + } else if (course.contains("Ακουστική Ι")) { + return greeklish ? "akoystikh_I" : "Ακουστική 1"; + } else if (course.contains("Εφαρμοσμένα Μαθηματικά ΙΙ")) { + return greeklish ? "efarmosmena_math_II" : "Εφαρμοσμένα 2"; + } else if (course.contains("Ηλεκτρακουστική Ι")) { + return greeklish ? "hlektroakoystikh_I" : "Ηλεκτροακουστική 1"; + } else if (course.contains("Οπτική Ι")) { + return greeklish ? "optikh_I" : "Οπτική 1"; + } else if (course.contains("Διάδοση Η/Μ Κύματος ΙΙ")) { + return greeklish ? "diadosi_II" : "Διάδοση 2"; + } else if (course.contains("Ψηφιακές Τηλεπικοινωνίες Ι")) { + return greeklish ? "pshf_thlep_I" : "Ψηφιακές Τηλεπ. 1"; + } else if (course.contains("Ακουστική ΙΙ")) { + return greeklish ? "akoystikh_II" : "Ακουστική 2"; + } else if (course.contains("Βιοϊατρική Τεχνολογία")) { + return greeklish ? "vioiatriki" : "Βιοιατρική"; + } else if (course.contains("Ηλεκτρακουστική ΙΙ")) { + return greeklish ? "hlektroakoystikh_II" : "Ηλεκτροακουστική 2"; + } else if (course.contains("Οπτική ΙΙ")) { + return greeklish ? "optikh_II" : "Οπτική 2"; + } else if (course.contains("Ασύρματος Τηλεπικοινωνία Ι")) { + return greeklish ? "asyrmatos_I" : "Ασύρματος 1"; + } else if (course.contains("Μικροκύματα I")) { + return greeklish ? "mikrokymata_I" : "Μικροκύματα 1"; + } else if (course.contains("Ψηφιακές Τηλεπικοινωνίες ΙΙ")) { + return greeklish ? "pshf_thlep_II" : "Ψηφιακές Τηλεπ. 2"; + } else if (course.contains("Ψηφιακή Επεξεργασία Σήματος")) { + return greeklish ? "PSES" : "ΨΕΣ"; + } else if (course.contains("Εισαγωγή στην Πολιτική Οικονομία")) { + return greeklish ? "polit_oik" : "Πολιτική Οικονομία"; + } else if (course.contains("Προηγμένες Τεχνικές Επεξεργασίας Σήματος")) { + return greeklish ? "ptes" : "ΠΤΕΣ"; + } else if (course.contains("Τηλεοπτικά Συστήματα")) { + return greeklish ? "tileoptika" : "Τηλεοπτικά"; + } else if (course.contains("Ασύρματος Τηλεπικοινωνία ΙΙ")) { + return greeklish ? "asyrmatos_II" : "Ασύρματος 2"; + } else if (course.contains("Δίκτυα Τηλεπικοινωνιών")) { + return greeklish ? "diktya_thlep" : "Δίκτυα Τηλέπ."; + } else if (course.contains("Θεωρία Πληροφοριών")) { + return greeklish ? "theoria_plir" : "Θεωρία Πληρ."; + } else if (course.contains("Οπτικές Επικοινωνίες")) { + return greeklish ? "optikes_thlep" : "Οπτικές Τηλεπ."; + } else { + return null; + } + } } \ No newline at end of file From 91af9db7d4ba257aca69f396281d9a1de62ab948 Mon Sep 17 00:00:00 2001 From: Apostolof <apotwohd@gmail.com> Date: Wed, 18 Jul 2018 13:37:57 +0300 Subject: [PATCH 6/8] Uploads minor fix --- .../activities/upload/UploadActivity.java | 23 ++++++++++----- .../upload/UploadFieldsBuilderActivity.java | 29 ++++++++++++++++++- 2 files changed, 43 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/gr/thmmy/mthmmy/activities/upload/UploadActivity.java b/app/src/main/java/gr/thmmy/mthmmy/activities/upload/UploadActivity.java index 08f3b891..207b2099 100644 --- a/app/src/main/java/gr/thmmy/mthmmy/activities/upload/UploadActivity.java +++ b/app/src/main/java/gr/thmmy/mthmmy/activities/upload/UploadActivity.java @@ -148,19 +148,22 @@ public class UploadActivity extends BaseActivity { } String maybeSemester = (String) ((AppCompatSpinnerWithoutDefault) - categoriesSpinners.getChildAt(numberOfSpinners - 2)).getSelectedItem(), - maybeCourse = (String) ((AppCompatSpinnerWithoutDefault) - categoriesSpinners.getChildAt(numberOfSpinners - 1)).getSelectedItem(); + categoriesSpinners.getChildAt(numberOfSpinners - 2)).getSelectedItem(); + String maybeCourse = (String) ((AppCompatSpinnerWithoutDefault) + categoriesSpinners.getChildAt(numberOfSpinners - 1)).getSelectedItem(); if (!maybeSemester.contains("εξάμηνο") && !maybeSemester.contains("Εξάμηνο")) { Toast.makeText(view.getContext(), "Please choose a course category", Toast.LENGTH_SHORT).show(); return; } + if (maybeCourse == null) { + Toast.makeText(view.getContext(), "Please choose a course", Toast.LENGTH_SHORT).show(); + return; + } //Fixes course and semester maybeCourse = maybeCourse.replaceAll("-", "").replace("(ΝΠΣ)", "").trim(); - maybeSemester = maybeSemester.replaceAll("-", "").trim(). - substring(0, 1); + maybeSemester = maybeSemester.replaceAll("-", "").trim().substring(0, 1); Intent intent = new Intent(UploadActivity.this, UploadFieldsBuilderActivity.class); Bundle extras = new Bundle(); @@ -359,7 +362,11 @@ public class UploadActivity extends BaseActivity { @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { - if (requestCode == REQUEST_CODE_CHOOSE_FILE && resultCode == Activity.RESULT_OK && data != null) { + if (requestCode == REQUEST_CODE_CHOOSE_FILE && data != null) { + if (resultCode == Activity.RESULT_OK) { + return; + } + fileUri = data.getData(); if (fileUri != null) { String filename = filenameFromUri(fileUri); @@ -436,7 +443,7 @@ public class UploadActivity extends BaseActivity { if (!tempDirectory.exists()) { if (!tempDirectory.mkdirs()) { - //TODO timber message? + Timber.w("Temporary directory build returned false in %s", UploadActivity.class.getSimpleName()); Toast.makeText(this, "Couldn't create temporary directory", Toast.LENGTH_SHORT).show(); return null; } @@ -449,7 +456,7 @@ public class UploadActivity extends BaseActivity { try { inputStream = getContentResolver().openInputStream(fileUri); if (inputStream == null) { - //TODO timber message? + Timber.w("Input stream was null, %s", UploadActivity.class.getSimpleName()); return null; } diff --git a/app/src/main/java/gr/thmmy/mthmmy/activities/upload/UploadFieldsBuilderActivity.java b/app/src/main/java/gr/thmmy/mthmmy/activities/upload/UploadFieldsBuilderActivity.java index 055971df..73bf6962 100644 --- a/app/src/main/java/gr/thmmy/mthmmy/activities/upload/UploadFieldsBuilderActivity.java +++ b/app/src/main/java/gr/thmmy/mthmmy/activities/upload/UploadFieldsBuilderActivity.java @@ -217,6 +217,7 @@ public class UploadFieldsBuilderActivity extends AppCompatActivity { @Nullable private String getGreeklishOrMinifiedCourseName(boolean greeklish) { + //TODO fill missing values if (course.contains("Συστήματα Υπολογιστών (Υπολογιστικά Συστήματα)")) { return greeklish ? "sys_ypologistwn" : "Συσ. Υπολογιστών"; } else if (course.contains("Τεχνική Μηχανική")) { @@ -305,6 +306,8 @@ public class UploadFieldsBuilderActivity extends AppCompatActivity { return greeklish ? "SHE_I" : "ΣΗΕ 1"; } else if (course.contains("Υψηλές Τάσεις Ι")) { return greeklish ? "ypshles_I" : "Υψηλές 1"; + } else if (course.contains("Θεωρία και Τεχνολογία Πυρηνικών Αντιδραστήρων")) { + return greeklish ? "texn_antidrasthrwn" : "Τεχνολογία Αντιδραστήρων"; } else if (course.contains("Τεχνολογία Ηλεκτροτεχνικών Υλικών")) { return greeklish ? "Hlektrotexnika_Ylika" : "Ηλεκτροτεχνικά Υλικά"; } else if (course.contains("Ηλεκτρικές Μηχανές Α'")) { @@ -315,8 +318,12 @@ public class UploadFieldsBuilderActivity extends AppCompatActivity { return greeklish ? "SHE_II" : "ΣΗΕ 2"; } else if (course.contains("Υψηλές Τάσεις ΙΙ")) { return greeklish ? "ypshles_II" : "Υψηλές 2"; + } else if (course.contains("Αρχές Οικονομίας")) { + return greeklish ? "arx_oikonomias" : "Αρχές Οικονομίας"; + } else if (course.contains("Διανεμημένη Παραγωγή")) { + return greeklish ? "dian_paragwgh" : "Διανεμημένη Παραγωγή"; } else if (course.contains("Διαχείριση Συστημάτων Ηλεκτρικής Ενέργειας")) { - return greeklish ? "ymes" : "ΥΜΕΣ"; + return greeklish ? "dshe" : "ΔΣΗΕ"; } else if (course.contains("Υψηλές Τάσεις ΙΙΙ")) { return greeklish ? "ypshles_III" : "Υψηλές 3"; } else if (course.contains("Ανάλυση Συστημάτων Ηλεκτρικής Ενέργειας")) { @@ -327,10 +334,18 @@ public class UploadFieldsBuilderActivity extends AppCompatActivity { return greeklish ? "isxyos_I" : "Ισχύος 1"; } else if (course.contains("Συστήματα Ηλεκτρικής Ενέργειας ΙΙΙ")) { return greeklish ? "SHE_III" : "ΣΗΕ 3"; + } else if (course.contains("Σερβοκινητήρια Συστήματα")) { + return greeklish ? "servo" : "Σέρβο"; + } else if (course.contains("Συστήματα Ηλεκτροκίνησης")) { + return greeklish ? "hlektrokinhsh" : "Ηλεκτροκίνηση"; } else if (course.contains("Υπολογιστικές Μέθοδοι στα Ενεργειακά Συστήματα")) { return greeklish ? "ymes" : "ΥΜΕΣ"; } else if (course.contains("Υψηλές Τάσεις 4")) { return greeklish ? "ypshles_IV" : "Υψηλές 4"; + } else if (course.contains("Ηλεκτρικές Μηχανές Γ'")) { + return greeklish ? "mhxanes_C" : "Μηχανές Γ"; + } else if (course.contains("Ηλεκτρική Οικονομία")) { + return greeklish ? "hlektr_oikonomia" : "Ηλεκτρική Οικονομία"; } else if (course.contains("Ηλεκτρονικά Ισχύος ΙΙ")) { return greeklish ? "isxyos_II" : "Ισχύος 2"; } else if (course.contains("Ανάλυση και Σχεδίαση Αλγορίθμων")) { @@ -435,6 +450,8 @@ public class UploadFieldsBuilderActivity extends AppCompatActivity { return greeklish ? "PSES" : "ΨΕΣ"; } else if (course.contains("Εισαγωγή στην Πολιτική Οικονομία")) { return greeklish ? "polit_oik" : "Πολιτική Οικονομία"; + } else if (course.contains("Θεωρία Σκέδασης")) { + return greeklish ? "skedash" : "Σκέδαση"; } else if (course.contains("Προηγμένες Τεχνικές Επεξεργασίας Σήματος")) { return greeklish ? "ptes" : "ΠΤΕΣ"; } else if (course.contains("Τηλεοπτικά Συστήματα")) { @@ -447,6 +464,16 @@ public class UploadFieldsBuilderActivity extends AppCompatActivity { return greeklish ? "theoria_plir" : "Θεωρία Πληρ."; } else if (course.contains("Οπτικές Επικοινωνίες")) { return greeklish ? "optikes_thlep" : "Οπτικές Τηλεπ."; + } else if (course.contains("Ευρυζωνικά Δίκτυα")) { + return greeklish ? "eyryzwnika" : "Ευρυζωνικά"; + } else if (course.contains("Τεχνικές μη Καταστρεπτικών Δοκιμών")) { + return greeklish ? "non_destructive_tests" : "Μη Καταστρεπτικές Δοκιμές"; + } else if (course.contains("Φωτονική Τεχνολογία")) { + return greeklish ? "fwtonikh" : "Φωτονική"; + } else if (course.contains("Μικροκυματική Τηλεπισκόπηση")) { + return greeklish ? "thlepiskophsh" : "Τηλεπισκόπηση"; + } else if (course.contains("Μικροκύματα II")) { + return greeklish ? "mikrokymata_II" : "Μικροκύματα 2"; } else { return null; } From cf09f19a9490033d1a284269f7f65ab23119caf7 Mon Sep 17 00:00:00 2001 From: oogee <teotyrov@gmail.com> Date: Sat, 28 Jul 2018 11:55:50 +0300 Subject: [PATCH 7/8] Vector icons (#33) Changes PNGs to vector assets --- .../mthmmy/activities/board/BoardAdapter.java | 16 ++++++++-------- .../activities/downloads/DownloadsAdapter.java | 8 ++++---- .../activities/profile/ProfileActivity.java | 8 ++++---- .../mthmmy/activities/topic/TopicAdapter.java | 16 ++++++++-------- .../java/gr/thmmy/mthmmy/base/BaseActivity.java | 8 ++++---- .../res/drawable-hdpi/ic_arrow_drop_down.png | Bin 197 -> 0 bytes .../main/res/drawable-hdpi/ic_arrow_drop_up.png | Bin 186 -> 0 bytes .../res/drawable-hdpi/ic_bookmark_false.png | Bin 293 -> 0 bytes .../main/res/drawable-hdpi/ic_bookmark_true.png | Bin 230 -> 0 bytes .../main/res/drawable-hdpi/ic_delete_accent.png | Bin 198 -> 0 bytes .../main/res/drawable-hdpi/ic_delete_white.png | Bin 189 -> 0 bytes .../main/res/drawable-hdpi/ic_file_upload.png | Bin 175 -> 0 bytes .../drawable-hdpi/ic_format_quote_checked.png | Bin 258 -> 0 bytes .../drawable-hdpi/ic_format_quote_unchecked.png | Bin 257 -> 0 bytes app/src/main/res/drawable-hdpi/ic_info.png | Bin 595 -> 0 bytes .../res/drawable-hdpi/ic_insert_drive_file.png | Bin 183 -> 0 bytes app/src/main/res/drawable-hdpi/ic_more_vert.png | Bin 164 -> 0 bytes app/src/main/res/drawable-hdpi/ic_send.png | Bin 324 -> 0 bytes app/src/main/res/drawable-hdpi/ic_share.png | Bin 541 -> 0 bytes .../res/drawable-mdpi/ic_arrow_drop_down.png | Bin 170 -> 0 bytes .../main/res/drawable-mdpi/ic_arrow_drop_up.png | Bin 148 -> 0 bytes .../res/drawable-mdpi/ic_bookmark_false.png | Bin 203 -> 0 bytes .../main/res/drawable-mdpi/ic_bookmark_true.png | Bin 161 -> 0 bytes .../main/res/drawable-mdpi/ic_delete_accent.png | Bin 132 -> 0 bytes .../main/res/drawable-mdpi/ic_delete_white.png | Bin 129 -> 0 bytes .../main/res/drawable-mdpi/ic_file_upload.png | Bin 139 -> 0 bytes .../drawable-mdpi/ic_format_quote_checked.png | Bin 189 -> 0 bytes .../drawable-mdpi/ic_format_quote_unchecked.png | Bin 187 -> 0 bytes app/src/main/res/drawable-mdpi/ic_info.png | Bin 376 -> 0 bytes .../res/drawable-mdpi/ic_insert_drive_file.png | Bin 153 -> 0 bytes app/src/main/res/drawable-mdpi/ic_more_vert.png | Bin 127 -> 0 bytes app/src/main/res/drawable-mdpi/ic_send.png | Bin 257 -> 0 bytes app/src/main/res/drawable-mdpi/ic_share.png | Bin 365 -> 0 bytes .../res/drawable-xhdpi/ic_arrow_drop_down.png | Bin 248 -> 0 bytes .../res/drawable-xhdpi/ic_arrow_drop_up.png | Bin 228 -> 0 bytes .../res/drawable-xhdpi/ic_bookmark_false.png | Bin 336 -> 0 bytes .../res/drawable-xhdpi/ic_bookmark_true.png | Bin 261 -> 0 bytes .../res/drawable-xhdpi/ic_delete_accent.png | Bin 196 -> 0 bytes .../main/res/drawable-xhdpi/ic_delete_white.png | Bin 192 -> 0 bytes .../main/res/drawable-xhdpi/ic_file_upload.png | Bin 196 -> 0 bytes .../drawable-xhdpi/ic_format_quote_checked.png | Bin 240 -> 0 bytes .../ic_format_quote_unchecked.png | Bin 236 -> 0 bytes app/src/main/res/drawable-xhdpi/ic_info.png | Bin 796 -> 0 bytes .../res/drawable-xhdpi/ic_insert_drive_file.png | Bin 249 -> 0 bytes .../main/res/drawable-xhdpi/ic_more_vert.png | Bin 203 -> 0 bytes app/src/main/res/drawable-xhdpi/ic_send.png | Bin 419 -> 0 bytes app/src/main/res/drawable-xhdpi/ic_share.png | Bin 675 -> 0 bytes .../res/drawable-xxhdpi/ic_arrow_drop_down.png | Bin 396 -> 0 bytes .../res/drawable-xxhdpi/ic_arrow_drop_up.png | Bin 308 -> 0 bytes .../res/drawable-xxhdpi/ic_bookmark_false.png | Bin 478 -> 0 bytes .../res/drawable-xxhdpi/ic_bookmark_true.png | Bin 362 -> 0 bytes .../res/drawable-xxhdpi/ic_delete_accent.png | Bin 279 -> 0 bytes .../res/drawable-xxhdpi/ic_delete_white.png | Bin 277 -> 0 bytes .../main/res/drawable-xxhdpi/ic_file_upload.png | Bin 254 -> 0 bytes .../drawable-xxhdpi/ic_format_quote_checked.png | Bin 424 -> 0 bytes .../ic_format_quote_unchecked.png | Bin 421 -> 0 bytes app/src/main/res/drawable-xxhdpi/ic_info.png | Bin 1174 -> 0 bytes .../drawable-xxhdpi/ic_insert_drive_file.png | Bin 364 -> 0 bytes .../main/res/drawable-xxhdpi/ic_more_vert.png | Bin 297 -> 0 bytes app/src/main/res/drawable-xxhdpi/ic_send.png | Bin 553 -> 0 bytes app/src/main/res/drawable-xxhdpi/ic_share.png | Bin 1068 -> 0 bytes .../res/drawable-xxxhdpi/ic_arrow_drop_down.png | Bin 451 -> 0 bytes .../res/drawable-xxxhdpi/ic_arrow_drop_up.png | Bin 432 -> 0 bytes .../res/drawable-xxxhdpi/ic_bookmark_false.png | Bin 620 -> 0 bytes .../res/drawable-xxxhdpi/ic_bookmark_true.png | Bin 473 -> 0 bytes .../res/drawable-xxxhdpi/ic_delete_accent.png | Bin 357 -> 0 bytes .../res/drawable-xxxhdpi/ic_delete_white.png | Bin 353 -> 0 bytes .../res/drawable-xxxhdpi/ic_file_upload.png | Bin 317 -> 0 bytes .../ic_format_quote_checked.png | Bin 505 -> 0 bytes .../ic_format_quote_unchecked.png | Bin 502 -> 0 bytes app/src/main/res/drawable-xxxhdpi/ic_info.png | Bin 1643 -> 0 bytes .../drawable-xxxhdpi/ic_insert_drive_file.png | Bin 475 -> 0 bytes .../main/res/drawable-xxxhdpi/ic_more_vert.png | Bin 406 -> 0 bytes app/src/main/res/drawable-xxxhdpi/ic_send.png | Bin 729 -> 0 bytes app/src/main/res/drawable-xxxhdpi/ic_share.png | Bin 1404 -> 0 bytes .../drawable/ic_arrow_drop_down_accent_24dp.xml | 5 +++++ .../drawable/ic_arrow_drop_up_accent_24dp.xml | 5 +++++ .../drawable/ic_bookmark_false_accent_24dp.xml | 5 +++++ .../drawable/ic_bookmark_true_accent_24dp.xml | 5 +++++ .../res/drawable/ic_default_user_thumbnail.png | Bin 2115 -> 0 bytes .../ic_default_user_thumbnail_white_24dp.xml | 5 +++++ .../main/res/drawable/ic_delete_accent_24dp.xml | 5 +++++ .../main/res/drawable/ic_delete_white_24dp.xml | 5 +++++ app/src/main/res/drawable/ic_file_upload.xml | 11 ----------- .../res/drawable/ic_file_upload_white_24dp.xml | 5 +++++ .../ic_format_quote_checked_accent_24dp.xml | 5 +++++ .../ic_format_quote_unchecked_grey_24dp.xml | 5 +++++ .../res/drawable/ic_info_outline_white_24dp.xml | 5 +++++ .../ic_insert_drive_file_white_24dp.xml | 5 +++++ .../res/drawable/ic_more_vert_white_24dp.xml | 5 +++++ .../main/res/drawable/ic_send_accent_24dp.xml | 5 +++++ .../main/res/drawable/ic_share_white_24dp.xml | 5 +++++ .../main/res/layout-v21/activity_profile.xml | 2 +- .../res/layout-v21/activity_topic_post_row.xml | 7 ++++--- app/src/main/res/layout/activity_board.xml | 2 +- .../res/layout/activity_board_sub_board.xml | 3 ++- .../main/res/layout/activity_board_topic.xml | 3 ++- app/src/main/res/layout/activity_downloads.xml | 2 +- .../main/res/layout/activity_downloads_row.xml | 3 ++- app/src/main/res/layout/activity_profile.xml | 2 +- .../res/layout/activity_topic_overflow_menu.xml | 4 ++-- .../main/res/layout/activity_topic_post_row.xml | 7 ++++--- .../layout/activity_topic_quick_reply_row.xml | 5 +++-- app/src/main/res/layout/activity_upload.xml | 2 +- .../res/layout/fragment_bookmarks_board_row.xml | 3 ++- .../res/layout/fragment_bookmarks_topic_row.xml | 2 +- app/src/main/res/menu/downloads_menu.xml | 2 +- app/src/main/res/menu/topic_menu.xml | 6 +++--- 108 files changed, 134 insertions(+), 63 deletions(-) delete mode 100644 app/src/main/res/drawable-hdpi/ic_arrow_drop_down.png delete mode 100644 app/src/main/res/drawable-hdpi/ic_arrow_drop_up.png delete mode 100644 app/src/main/res/drawable-hdpi/ic_bookmark_false.png delete mode 100644 app/src/main/res/drawable-hdpi/ic_bookmark_true.png delete mode 100644 app/src/main/res/drawable-hdpi/ic_delete_accent.png delete mode 100644 app/src/main/res/drawable-hdpi/ic_delete_white.png delete mode 100644 app/src/main/res/drawable-hdpi/ic_file_upload.png delete mode 100644 app/src/main/res/drawable-hdpi/ic_format_quote_checked.png delete mode 100644 app/src/main/res/drawable-hdpi/ic_format_quote_unchecked.png delete mode 100644 app/src/main/res/drawable-hdpi/ic_info.png delete mode 100644 app/src/main/res/drawable-hdpi/ic_insert_drive_file.png delete mode 100644 app/src/main/res/drawable-hdpi/ic_more_vert.png delete mode 100644 app/src/main/res/drawable-hdpi/ic_send.png delete mode 100644 app/src/main/res/drawable-hdpi/ic_share.png delete mode 100644 app/src/main/res/drawable-mdpi/ic_arrow_drop_down.png delete mode 100644 app/src/main/res/drawable-mdpi/ic_arrow_drop_up.png delete mode 100644 app/src/main/res/drawable-mdpi/ic_bookmark_false.png delete mode 100644 app/src/main/res/drawable-mdpi/ic_bookmark_true.png delete mode 100644 app/src/main/res/drawable-mdpi/ic_delete_accent.png delete mode 100644 app/src/main/res/drawable-mdpi/ic_delete_white.png delete mode 100644 app/src/main/res/drawable-mdpi/ic_file_upload.png delete mode 100644 app/src/main/res/drawable-mdpi/ic_format_quote_checked.png delete mode 100644 app/src/main/res/drawable-mdpi/ic_format_quote_unchecked.png delete mode 100644 app/src/main/res/drawable-mdpi/ic_info.png delete mode 100644 app/src/main/res/drawable-mdpi/ic_insert_drive_file.png delete mode 100644 app/src/main/res/drawable-mdpi/ic_more_vert.png delete mode 100644 app/src/main/res/drawable-mdpi/ic_send.png delete mode 100644 app/src/main/res/drawable-mdpi/ic_share.png delete mode 100644 app/src/main/res/drawable-xhdpi/ic_arrow_drop_down.png delete mode 100644 app/src/main/res/drawable-xhdpi/ic_arrow_drop_up.png delete mode 100644 app/src/main/res/drawable-xhdpi/ic_bookmark_false.png delete mode 100644 app/src/main/res/drawable-xhdpi/ic_bookmark_true.png delete mode 100644 app/src/main/res/drawable-xhdpi/ic_delete_accent.png delete mode 100644 app/src/main/res/drawable-xhdpi/ic_delete_white.png delete mode 100644 app/src/main/res/drawable-xhdpi/ic_file_upload.png delete mode 100644 app/src/main/res/drawable-xhdpi/ic_format_quote_checked.png delete mode 100644 app/src/main/res/drawable-xhdpi/ic_format_quote_unchecked.png delete mode 100644 app/src/main/res/drawable-xhdpi/ic_info.png delete mode 100644 app/src/main/res/drawable-xhdpi/ic_insert_drive_file.png delete mode 100644 app/src/main/res/drawable-xhdpi/ic_more_vert.png delete mode 100644 app/src/main/res/drawable-xhdpi/ic_send.png delete mode 100644 app/src/main/res/drawable-xhdpi/ic_share.png delete mode 100644 app/src/main/res/drawable-xxhdpi/ic_arrow_drop_down.png delete mode 100644 app/src/main/res/drawable-xxhdpi/ic_arrow_drop_up.png delete mode 100644 app/src/main/res/drawable-xxhdpi/ic_bookmark_false.png delete mode 100644 app/src/main/res/drawable-xxhdpi/ic_bookmark_true.png delete mode 100644 app/src/main/res/drawable-xxhdpi/ic_delete_accent.png delete mode 100644 app/src/main/res/drawable-xxhdpi/ic_delete_white.png delete mode 100644 app/src/main/res/drawable-xxhdpi/ic_file_upload.png delete mode 100644 app/src/main/res/drawable-xxhdpi/ic_format_quote_checked.png delete mode 100644 app/src/main/res/drawable-xxhdpi/ic_format_quote_unchecked.png delete mode 100644 app/src/main/res/drawable-xxhdpi/ic_info.png delete mode 100644 app/src/main/res/drawable-xxhdpi/ic_insert_drive_file.png delete mode 100644 app/src/main/res/drawable-xxhdpi/ic_more_vert.png delete mode 100644 app/src/main/res/drawable-xxhdpi/ic_send.png delete mode 100644 app/src/main/res/drawable-xxhdpi/ic_share.png delete mode 100644 app/src/main/res/drawable-xxxhdpi/ic_arrow_drop_down.png delete mode 100644 app/src/main/res/drawable-xxxhdpi/ic_arrow_drop_up.png delete mode 100644 app/src/main/res/drawable-xxxhdpi/ic_bookmark_false.png delete mode 100644 app/src/main/res/drawable-xxxhdpi/ic_bookmark_true.png delete mode 100644 app/src/main/res/drawable-xxxhdpi/ic_delete_accent.png delete mode 100644 app/src/main/res/drawable-xxxhdpi/ic_delete_white.png delete mode 100644 app/src/main/res/drawable-xxxhdpi/ic_file_upload.png delete mode 100644 app/src/main/res/drawable-xxxhdpi/ic_format_quote_checked.png delete mode 100644 app/src/main/res/drawable-xxxhdpi/ic_format_quote_unchecked.png delete mode 100644 app/src/main/res/drawable-xxxhdpi/ic_info.png delete mode 100644 app/src/main/res/drawable-xxxhdpi/ic_insert_drive_file.png delete mode 100644 app/src/main/res/drawable-xxxhdpi/ic_more_vert.png delete mode 100644 app/src/main/res/drawable-xxxhdpi/ic_send.png delete mode 100644 app/src/main/res/drawable-xxxhdpi/ic_share.png create mode 100644 app/src/main/res/drawable/ic_arrow_drop_down_accent_24dp.xml create mode 100644 app/src/main/res/drawable/ic_arrow_drop_up_accent_24dp.xml create mode 100644 app/src/main/res/drawable/ic_bookmark_false_accent_24dp.xml create mode 100644 app/src/main/res/drawable/ic_bookmark_true_accent_24dp.xml delete mode 100644 app/src/main/res/drawable/ic_default_user_thumbnail.png create mode 100644 app/src/main/res/drawable/ic_default_user_thumbnail_white_24dp.xml create mode 100644 app/src/main/res/drawable/ic_delete_accent_24dp.xml create mode 100644 app/src/main/res/drawable/ic_delete_white_24dp.xml delete mode 100644 app/src/main/res/drawable/ic_file_upload.xml create mode 100644 app/src/main/res/drawable/ic_file_upload_white_24dp.xml create mode 100644 app/src/main/res/drawable/ic_format_quote_checked_accent_24dp.xml create mode 100644 app/src/main/res/drawable/ic_format_quote_unchecked_grey_24dp.xml create mode 100644 app/src/main/res/drawable/ic_info_outline_white_24dp.xml create mode 100644 app/src/main/res/drawable/ic_insert_drive_file_white_24dp.xml create mode 100644 app/src/main/res/drawable/ic_more_vert_white_24dp.xml create mode 100644 app/src/main/res/drawable/ic_send_accent_24dp.xml create mode 100644 app/src/main/res/drawable/ic_share_white_24dp.xml diff --git a/app/src/main/java/gr/thmmy/mthmmy/activities/board/BoardAdapter.java b/app/src/main/java/gr/thmmy/mthmmy/activities/board/BoardAdapter.java index 3f5bd0cf..09734606 100644 --- a/app/src/main/java/gr/thmmy/mthmmy/activities/board/BoardAdapter.java +++ b/app/src/main/java/gr/thmmy/mthmmy/activities/board/BoardAdapter.java @@ -147,10 +147,10 @@ class BoardAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { }); if (boardExpandableVisibility.get(subBoardViewHolder.getAdapterPosition() - 1)) { subBoardViewHolder.boardExpandable.setVisibility(View.VISIBLE); - subBoardViewHolder.showHideExpandable.setImageResource(R.drawable.ic_arrow_drop_up); + subBoardViewHolder.showHideExpandable.setImageResource(R.drawable.ic_arrow_drop_up_accent_24dp); } else { subBoardViewHolder.boardExpandable.setVisibility(View.GONE); - subBoardViewHolder.showHideExpandable.setImageResource(R.drawable.ic_arrow_drop_down); + subBoardViewHolder.showHideExpandable.setImageResource(R.drawable.ic_arrow_drop_down_accent_24dp); } subBoardViewHolder.showHideExpandable.setOnClickListener(new View.OnClickListener() { @Override @@ -158,10 +158,10 @@ class BoardAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { final boolean visible = boardExpandableVisibility.get(subBoardViewHolder.getAdapterPosition() - 1); if (visible) { subBoardViewHolder.boardExpandable.setVisibility(View.GONE); - subBoardViewHolder.showHideExpandable.setImageResource(R.drawable.ic_arrow_drop_down); + subBoardViewHolder.showHideExpandable.setImageResource(R.drawable.ic_arrow_drop_down_accent_24dp); } else { subBoardViewHolder.boardExpandable.setVisibility(View.VISIBLE); - subBoardViewHolder.showHideExpandable.setImageResource(R.drawable.ic_arrow_drop_up); + subBoardViewHolder.showHideExpandable.setImageResource(R.drawable.ic_arrow_drop_up_accent_24dp); } boardExpandableVisibility.set(subBoardViewHolder.getAdapterPosition() - 1, !visible); } @@ -208,10 +208,10 @@ class BoardAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { if (topicExpandableVisibility.get(topicViewHolder.getAdapterPosition() - parsedSubBoards .size() - 2)) { topicViewHolder.topicExpandable.setVisibility(View.VISIBLE); - topicViewHolder.showHideExpandable.setImageResource(R.drawable.ic_arrow_drop_up); + topicViewHolder.showHideExpandable.setImageResource(R.drawable.ic_arrow_drop_up_accent_24dp); } else { topicViewHolder.topicExpandable.setVisibility(View.GONE); - topicViewHolder.showHideExpandable.setImageResource(R.drawable.ic_arrow_drop_down); + topicViewHolder.showHideExpandable.setImageResource(R.drawable.ic_arrow_drop_down_accent_24dp); } topicViewHolder.showHideExpandable.setOnClickListener(new View.OnClickListener() { @Override @@ -220,10 +220,10 @@ class BoardAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { getAdapterPosition() - parsedSubBoards.size() - 2); if (visible) { topicViewHolder.topicExpandable.setVisibility(View.GONE); - topicViewHolder.showHideExpandable.setImageResource(R.drawable.ic_arrow_drop_down); + topicViewHolder.showHideExpandable.setImageResource(R.drawable.ic_arrow_drop_down_accent_24dp); } else { topicViewHolder.topicExpandable.setVisibility(View.VISIBLE); - topicViewHolder.showHideExpandable.setImageResource(R.drawable.ic_arrow_drop_up); + topicViewHolder.showHideExpandable.setImageResource(R.drawable.ic_arrow_drop_up_accent_24dp); } topicExpandableVisibility.set(topicViewHolder.getAdapterPosition() - parsedSubBoards.size() - 2, !visible); diff --git a/app/src/main/java/gr/thmmy/mthmmy/activities/downloads/DownloadsAdapter.java b/app/src/main/java/gr/thmmy/mthmmy/activities/downloads/DownloadsAdapter.java index 5395b447..34a583e0 100644 --- a/app/src/main/java/gr/thmmy/mthmmy/activities/downloads/DownloadsAdapter.java +++ b/app/src/main/java/gr/thmmy/mthmmy/activities/downloads/DownloadsAdapter.java @@ -91,10 +91,10 @@ class DownloadsAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { if (downloadExpandableVisibility.get(downloadViewHolder.getAdapterPosition())) { downloadViewHolder.informationExpandable.setVisibility(View.VISIBLE); - downloadViewHolder.informationExpandableBtn.setImageResource(R.drawable.ic_arrow_drop_up); + downloadViewHolder.informationExpandableBtn.setImageResource(R.drawable.ic_arrow_drop_up_accent_24dp); } else { downloadViewHolder.informationExpandable.setVisibility(View.GONE); - downloadViewHolder.informationExpandableBtn.setImageResource(R.drawable.ic_arrow_drop_down); + downloadViewHolder.informationExpandableBtn.setImageResource(R.drawable.ic_arrow_drop_down_accent_24dp); } downloadViewHolder.informationExpandableBtn.setOnClickListener(new View.OnClickListener() { @Override @@ -103,10 +103,10 @@ class DownloadsAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { getAdapterPosition()); if (visible) { downloadViewHolder.informationExpandable.setVisibility(View.GONE); - downloadViewHolder.informationExpandableBtn.setImageResource(R.drawable.ic_arrow_drop_down); + downloadViewHolder.informationExpandableBtn.setImageResource(R.drawable.ic_arrow_drop_down_accent_24dp); } else { downloadViewHolder.informationExpandable.setVisibility(View.VISIBLE); - downloadViewHolder.informationExpandableBtn.setImageResource(R.drawable.ic_arrow_drop_up); + downloadViewHolder.informationExpandableBtn.setImageResource(R.drawable.ic_arrow_drop_up_accent_24dp); } downloadExpandableVisibility.set(downloadViewHolder.getAdapterPosition(), !visible); } diff --git a/app/src/main/java/gr/thmmy/mthmmy/activities/profile/ProfileActivity.java b/app/src/main/java/gr/thmmy/mthmmy/activities/profile/ProfileActivity.java index a83fc610..2be05a74 100644 --- a/app/src/main/java/gr/thmmy/mthmmy/activities/profile/ProfileActivity.java +++ b/app/src/main/java/gr/thmmy/mthmmy/activities/profile/ProfileActivity.java @@ -124,9 +124,9 @@ public class ProfileActivity extends BaseActivity implements LatestPostsFragment .resize(THUMBNAIL_SIZE, THUMBNAIL_SIZE) .centerCrop() .error(ResourcesCompat.getDrawable(this.getResources() - , R.drawable.ic_default_user_thumbnail, null)) + , R.drawable.ic_default_user_thumbnail_white_24dp, null)) .placeholder(ResourcesCompat.getDrawable(this.getResources() - , R.drawable.ic_default_user_thumbnail, null)) + , R.drawable.ic_default_user_thumbnail_white_24dp, null)) .transform(new CircleTransform()) .into(thumbnailView); usernameView = findViewById(R.id.profile_activity_username); @@ -310,9 +310,9 @@ public class ProfileActivity extends BaseActivity implements LatestPostsFragment .resize(THUMBNAIL_SIZE, THUMBNAIL_SIZE) .centerCrop() .error(ResourcesCompat.getDrawable(getResources() - , R.drawable.ic_default_user_thumbnail, null)) + , R.drawable.ic_default_user_thumbnail_white_24dp, null)) .placeholder(ResourcesCompat.getDrawable(getResources() - , R.drawable.ic_default_user_thumbnail, null)) + , R.drawable.ic_default_user_thumbnail_white_24dp, null)) .transform(new CircleTransform()) .into(thumbnailView); if (personalText != null) { diff --git a/app/src/main/java/gr/thmmy/mthmmy/activities/topic/TopicAdapter.java b/app/src/main/java/gr/thmmy/mthmmy/activities/topic/TopicAdapter.java index 345f9c5b..520da629 100644 --- a/app/src/main/java/gr/thmmy/mthmmy/activities/topic/TopicAdapter.java +++ b/app/src/main/java/gr/thmmy/mthmmy/activities/topic/TopicAdapter.java @@ -204,9 +204,9 @@ class TopicAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { .resize(THUMBNAIL_SIZE, THUMBNAIL_SIZE) .centerCrop() .error(ResourcesCompat.getDrawable(context.getResources() - , R.drawable.ic_default_user_thumbnail, null)) + , R.drawable.ic_default_user_thumbnail_white_24dp, null)) .placeholder(ResourcesCompat.getDrawable(context.getResources() - , R.drawable.ic_default_user_thumbnail, null)) + , R.drawable.ic_default_user_thumbnail_white_24dp, null)) .transform(new CircleTransform()) .into(holder.thumbnail); @@ -480,9 +480,9 @@ class TopicAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { holder.quoteToggle.setVisibility(View.GONE); } else { if (viewProperties.get(position)[isQuoteButtonChecked]) - holder.quoteToggle.setImageResource(R.drawable.ic_format_quote_checked); + holder.quoteToggle.setImageResource(R.drawable.ic_format_quote_checked_accent_24dp); else - holder.quoteToggle.setImageResource(R.drawable.ic_format_quote_unchecked); + holder.quoteToggle.setImageResource(R.drawable.ic_format_quote_unchecked_grey_24dp); //Sets graphics behavior holder.quoteToggle.setOnClickListener(new View.OnClickListener() { @Override @@ -493,10 +493,10 @@ class TopicAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { toQuoteList.remove(toQuoteList.indexOf(postsList.indexOf(currentPost))); } else Timber.i("An error occurred while trying to exclude post fromtoQuoteList, post wasn't there!"); - holder.quoteToggle.setImageResource(R.drawable.ic_format_quote_unchecked); + holder.quoteToggle.setImageResource(R.drawable.ic_format_quote_unchecked_grey_24dp); } else { toQuoteList.add(postsList.indexOf(currentPost)); - holder.quoteToggle.setImageResource(R.drawable.ic_format_quote_checked); + holder.quoteToggle.setImageResource(R.drawable.ic_format_quote_checked_accent_24dp); } tmp[isQuoteButtonChecked] = !tmp[isQuoteButtonChecked]; viewProperties.set(holder.getAdapterPosition(), tmp); @@ -512,9 +512,9 @@ class TopicAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { .resize(THUMBNAIL_SIZE, THUMBNAIL_SIZE) .centerCrop() .error(ResourcesCompat.getDrawable(context.getResources() - , R.drawable.ic_default_user_thumbnail, null)) + , R.drawable.ic_default_user_thumbnail_white_24dp, null)) .placeholder(ResourcesCompat.getDrawable(context.getResources() - , R.drawable.ic_default_user_thumbnail, null)) + , R.drawable.ic_default_user_thumbnail_white_24dp, null)) .transform(new CircleTransform()) .into(holder.thumbnail); holder.username.setText(getSessionManager().getUsername()); diff --git a/app/src/main/java/gr/thmmy/mthmmy/base/BaseActivity.java b/app/src/main/java/gr/thmmy/mthmmy/base/BaseActivity.java index e0c70e1f..6db1f0d5 100644 --- a/app/src/main/java/gr/thmmy/mthmmy/base/BaseActivity.java +++ b/app/src/main/java/gr/thmmy/mthmmy/base/BaseActivity.java @@ -106,15 +106,15 @@ public abstract class BaseActivity extends AppCompatActivity { if (bookmarked == null) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { - bookmarked = getResources().getDrawable(R.drawable.ic_bookmark_true, null); + bookmarked = getResources().getDrawable(R.drawable.ic_bookmark_true_accent_24dp, null); } else //noinspection deprecation - bookmarked = getResources().getDrawable(R.drawable.ic_bookmark_true); + bookmarked = getResources().getDrawable(R.drawable.ic_bookmark_true_accent_24dp); } if (notBookmarked == null) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { - notBookmarked = getResources().getDrawable(R.drawable.ic_bookmark_false, null); + notBookmarked = getResources().getDrawable(R.drawable.ic_bookmark_false_accent_24dp, null); } else //noinspection deprecation - notBookmarked = getResources().getDrawable(R.drawable.ic_bookmark_false); + notBookmarked = getResources().getDrawable(R.drawable.ic_bookmark_false_accent_24dp); } if (topicsBookmarked == null || boardsBookmarked == null) { bookmarksFile = getSharedPreferences(BOOKMARKS_SHARED_PREFS, Context.MODE_PRIVATE); diff --git a/app/src/main/res/drawable-hdpi/ic_arrow_drop_down.png b/app/src/main/res/drawable-hdpi/ic_arrow_drop_down.png deleted file mode 100644 index 8c2624cc2279606fdb16cb859106caa77ed5ed08..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 197 zcmeAS@N?(olHy`uVBq!ia0vp^W+2SL1|)l2v+jZ@PZ!6Kid%25dGazl@~|9m+-xE3 z&d~BqP2f|6eAlas3|@~n{*HNn{pWER0}QZX?S`6San;NE({fj+yBp39@c+Lt$1zl= zKgS_7_o&Zet?RXFfmh3Qf>-o0&*cmW|LkGDYID$1;j4E=FSiCY9Xx;x>dvz3f2?yo Uy6x=@pt~46UHx3vIVCg!07l|Wy8r+H diff --git a/app/src/main/res/drawable-hdpi/ic_arrow_drop_up.png b/app/src/main/res/drawable-hdpi/ic_arrow_drop_up.png deleted file mode 100644 index f70260ad119b154e93022f2dde5eab7cc87c770f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 186 zcmeAS@N?(olHy`uVBq!ia0vp^W+2SL1|)l2v+e?^Mo$;VkcwMxuWjUQFyLW0=yQ0^ znS%^#IGwy4yHnKFc0FR>@$Pn+T<%dR31o01KCwDq^9J*-s^3~0%(Eo&*s?hC#I$71 zg{OAS?)5qx>ag^|ss)D%rv@zCk+s4g#x;cF97}T}2B>|@#{RC(wVT^)CeSeqp00i_ I>zopr0858KCIA2c diff --git a/app/src/main/res/drawable-hdpi/ic_bookmark_false.png b/app/src/main/res/drawable-hdpi/ic_bookmark_false.png deleted file mode 100644 index afb6271f66ef5b49256dcf339099b3eedb33f809..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 293 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k1|%Oc%$NbB-gvq=hE&{oJ7Xj7Ap-$dS(S)J zABSFz8%-Qp(;66gW;QUcaOld|?4)7LQX1C4wQs3&5o71cn~V#!<C5>z+P<9gLdewW z?N$ASE-&O;l_oIoUYeGpq5OzzW`oQf+ll6$rktvBsq@ZQINjpXl2F!OBXd^JYwdz5 zg^_cMT|8Rg=uT7Hk?XC;9&qG6;NmN}wlaWU=fKW1UsLHvbF!K_-yV>PvAZ$f_ib0z zUhchzdbF5>l@@Q_HBZ4w^v1rOCk(%a#&S$e;QYnc|EnR(`@Yk+h+F&G-xO|YQ8QtR jzyHoK_0)ZSL9S!Wd>?rDZ*SuR1qg$utDnm{r-UW|L-ul^ diff --git a/app/src/main/res/drawable-hdpi/ic_bookmark_true.png b/app/src/main/res/drawable-hdpi/ic_bookmark_true.png deleted file mode 100644 index ce6dd7a93d93ab29cba4acf530322173258dfd0e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 230 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k1|%Oc%$NbB)_S@)hE&{24v04EPBcht3uNbY zXE$WpC@*lGsgQZ*4!$fl<)wT~k{jeY{s(ieSAU}6#P@0OqU3}d(}mctUOM2ob&AD` zMmD}IiP8%zn%!hgUM&b@@3qRf;<%Vk3M9mK&e6WHf>U6&<42(t5_e_4$aK7JjF9P; z<6N=t`ImwVo(g?zNnuJ>Gjam9s;_*j@FYWVdv}k_ToKC?98#=TUhVdFI4dLjSE5wl btO0}c4zY{QvlhJsI-J4N)z4*}Q$iB}VyIHP diff --git a/app/src/main/res/drawable-hdpi/ic_delete_accent.png b/app/src/main/res/drawable-hdpi/ic_delete_accent.png deleted file mode 100644 index 83e1bb27c0edd5cc33661b523be0a98f6ac7b958..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 198 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k1|%Oc%$NbBdOcknLn>~)y|J6OK|!Q7(X0Hz zEyW(|n?d(1We!M69J1)y__fe8hque!>5=9?zC+UmgbrMB&M!J8@I^deVWh9#rsp$M z6!uTJ{LMj+O;k$3T&!-Ez!z1G+rerJ5)`hK3AzY4vOowHrd)<IT`ax~7dlwB-ulF3 soXz{|X;fzHk)!v{YySN07_f@(i^|pAE2UOO03F8Q>FVdQ&MBb@0J7LfI{*Lx diff --git a/app/src/main/res/drawable-hdpi/ic_delete_white.png b/app/src/main/res/drawable-hdpi/ic_delete_white.png deleted file mode 100644 index 5e89821e2af31cfdba2c634963a9da8e16f7d532..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 189 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k1|%Oc%$NbBT0C7GLn>~)y|IzA!9bw(q4r%z zb;0sYzLm+T9EB1auYP9QCe(3W;DhX+yPfgMDqS-@y*VB08B60nd|6oVK7?_pxa(<u z9ml6)S3WFespZW2rX3t$AdtnO)S=J>A($Hd7@j#ag)w9}HmT*;H{RSMSX(T+XXk^2 i`SV`>{NB7ED)uqcqs8pc7+QetVeoYIb6Mw<&;$TT;YFta diff --git a/app/src/main/res/drawable-hdpi/ic_file_upload.png b/app/src/main/res/drawable-hdpi/ic_file_upload.png deleted file mode 100644 index 4cdd48825c39e3f7543c75304d0bf6ae33cc7055..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 175 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k1|%Oc%$NbB$~;{hLn>~)y?&6B!H|Q+!P|4? zw5qukGAjRFVwLZ3{VtQ!(nwRAtHknG)Fdsc!R~~yabB}nTByX-PEW_w<U<-PYAsHQ zcQjOvwK^sD1&Yp44iQb0ei~bSH)Gw@@(zV24y6}n9r5nb6Qb%g9X$lvXDKu-s$|SJ Wl~=a>{hbBq0tQc4KbLh*2~7a9LpY=W diff --git a/app/src/main/res/drawable-hdpi/ic_format_quote_checked.png b/app/src/main/res/drawable-hdpi/ic_format_quote_checked.png deleted file mode 100644 index bd7be5355ae869a35efa3f9fa2b69bcdabeb6e3f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 258 zcmeAS@N?(olHy`uVBq!ia0vp^W+2SL1|)l2v+e?^lb$Y)Ar-gY-q^_7Y#`8@Xv|P6 z)*v{ka8hMLv&oVq=C*`MUrIb3i#+r!yNpjoKGcu<{l(6Enri#5{q6NW3~W3S1_=im z7@664ZX8UQ-|}aZFkAr0Xm8DZsxos5V{`a(xee_`4^&s~u?h|pKe?tS!^S!|pfx3g z%|>-;dOFveZG}76-<um2BI#d{dqBef-qy=p*;5%$-?eytAyYEI``)RJa~-$#UN%Y! qVDtI-_vE6<^An)<g6&J4r*Cyr!%%S6w-BJG7(8A5T-G@yGywprOJc78 diff --git a/app/src/main/res/drawable-hdpi/ic_format_quote_unchecked.png b/app/src/main/res/drawable-hdpi/ic_format_quote_unchecked.png deleted file mode 100644 index 3e0e1c637394779d99e1cedc0e4df93c9d9b1223..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 257 zcmeAS@N?(olHy`uVBq!ia0vp^W+2SL1|)l2v+e?^6P_-PAr-gY-q^_7Y#`8@n9lG^ zN5D<tv5I#^rvZ!3K>?ph^Yk<)$xQO@d(=}T_UCB!{CnvqH$4$Z=Bf5!VB?W6NI1~I z$jrub<6y%5o<Ey~;Q~NLd+XY#Iy0v*HithK+Yl%DVN%Q<tKz`$lkSoqKfF2PI9Fw{ z(F4tuHrB-n->06g{rqmrqE#hL-pt2JKCPP@7O|RV#(TG5r{$>*x|Q0>R?1nQ{Z4l{ qN*XNvzP!V)uBj1ZE7Z2Iin^~)Zlp=5%fA8oiNVv=&t;ucLK6T60Ak|+ diff --git a/app/src/main/res/drawable-hdpi/ic_info.png b/app/src/main/res/drawable-hdpi/ic_info.png deleted file mode 100644 index 0932c17cb0a520c5e53f4658e9119be31add6a3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 595 zcmV-Z0<8UsP)<h;3K|Lk000e1NJLTq001Na001Ni1^@s6;Q*MJ0006SNkl<Zc-rk) z!D_-l5Y<@q&{pv(eoQZdSoF|?BE>%`C3sM%1uI7A4~W&$&k#SORf|;Z59lSGzzD-M zZYJ9V+Ty~45N6-J?9S}WCSu!m<ToL56cmD>1fUGC08_vkutTizT@O$K#KRPn0W<)g zwtQ>=CLkTOpc;O??)U&yf)Eq~Ji0h|1vCM9Ko++#fzQsn7U0cgo`sxRf}DvjjL>mX z1sH;_HE?C;jAN`4r6S}jGXR`wB*7VA$hi7`1=SeAeE=!lVVo7IpbQJ(frq0D%p?<^ z57|WlBNpgsiJ%6H8Lw?JiM{Dzdk$C-`&%zT33kp@1zX`qkb`S>PQ_J%$}F`d*(BXE zn!PjP=TareB8JTnYt|j{(^UzY62p9mf(pdXL?wu3S5`>wcgq~)h@X{8(2f`;gyepM z+Ch@c+5Ra(I$NeANW5h_L9HW59MnBx*a}flo6LDo2`aI&VT2$k##)l1SLxUg<5~!U z>crlO*%PngN*&Cxp9xA(3h++sZzR<|jjh3c3<GRGo(b;~tG}p0tFUIOgM_-JB8oMO zjw`<{ti=dMZeJuoimlAIg6gNqA2Xr__A@bIHq}|oIO9o`y%N&C%XMakEkprN-6SH1 z@7gZ6js40PL0l9oEYSUq<)N7Q$yGXyJ@CedkTs^ZIQDchCXQ`q7wgapEA|$jCs+=O h{Lnl8ANrSqz5tI3Lgf5YhgJXp002ovPDHLkV1j3n1>67t diff --git a/app/src/main/res/drawable-hdpi/ic_insert_drive_file.png b/app/src/main/res/drawable-hdpi/ic_insert_drive_file.png deleted file mode 100644 index 6459c3571cc0d94a242b7c396205035b84436e83..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 183 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k1|%Oc%$NbB>O5T>Ln>~)y%EUOpdirlaBsqu ziF<Mq<}RFN)A-`njH5h%{5O5D&1T41^2U3CrD)*(159f_=o>h=Gau_cWjoJr!qx>5 z3g%s$MGJ2%$O_>P5M3p{LgK1$NXseN_y>LpjVw}pER8He9zd4Ri^vOpM_l+bJabjf geCg(29lnckddaDZsG`5oK$kFhy85}Sb4q9e0NFM}&;S4c diff --git a/app/src/main/res/drawable-hdpi/ic_more_vert.png b/app/src/main/res/drawable-hdpi/ic_more_vert.png deleted file mode 100644 index f3b7a4c4d2d500421702bd19055ca23957390472..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 164 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k1|%Oc%$NbBvOQfKLn>~)z2ePvK!L~gV$Z76 z`XP6g&F5VrIA=@BJh62jp0QulUZoX3i-C#d#m=17+cKrMC3#O=&{{cPTgXH<pr3`8 z{fd&~QO3Cw7i_ujbKiWk0sDP9fkc&_mWc*TN+43m&7t8R_b$fyH_8mY<y`v$w3fls L)z4*}Q$iB}HR3xa diff --git a/app/src/main/res/drawable-hdpi/ic_send.png b/app/src/main/res/drawable-hdpi/ic_send.png deleted file mode 100644 index a8fd035d0d23fcac869997482ed1d5395d0aba82..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 324 zcmV-K0lWT*P)<h;3K|Lk000e1NJLTq001Na001Ni1^@s6;Q*MJ0003CNkl<Zc-rmQ zF%AJy6h`5ZXce|V*Z@l)VF4_G>S<X5Efot;&{MDk7NB4WBw7iMLV^h9&V4gaGR4=Z zevUEoc=_?jbBPxZ`u9OqBwQMF!3Hg)Tp4tC!~l6$2Hl-84=d*{gC1GW>35LzoYFzo zat0lwo>Oy>N=_St0_C(hNR;#Sg)|DNp^YIH*y0pMPCtE<$e@G<x|m>vy;e@m-w^4i z`;=3AP!V->Fv1eM9|jr8pj)ym%4nj8Db_d$lFd;0mQ4CC{d}qW$hmOY8_8v_{loY+ zOBA<`k6FUJxtgeNuA(fq9?-;Dv>#zj)Q_<0S%MsctYncK6pbqfMdyyv@xLGOAiu69 Wl6gt;kN*e&0000<MNUMnLSTZ(Y>9pV diff --git a/app/src/main/res/drawable-hdpi/ic_share.png b/app/src/main/res/drawable-hdpi/ic_share.png deleted file mode 100644 index c832502c0795518af86607a24ad356c81c94e3d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 541 zcmV+&0^<FNP)<h;3K|Lk000e1NJLTq001Na001Ni1^@s6;Q*MJ00006VoOIv0RI60 z0RN!9r;`8x0n$lCK~z|U?bo|&6j2z4@iRu!h^%Q;3|fdtYE8sM6fEqt7A^cM)XL6I z5DPm+3qeakSTBgJ=~8GV1_cR-;4O<bUe=$*jyQXEb{%BSY_m`KaSq=zbG~_JCWHwS z`oR+J<0C$xjf3NoIfb7F`GJ#7%gkWCMCK2l(TewNNa%DTgfP&sz?Klg@wk{$Xtu(d zopB+F5V8=$OogRuDf;(;c|094J0oYPPLXZ6fo`GcI=(mhlwlfY(J3_S;ySis5s&c& zU!}?+WH^Jh=;|L~uJ(p`(<3;Kb2w0_&*5Pt@-`RDQi!zhq~z@H;z~3Z-*5?=YZoa9 zwM%5mc!0ghL~@zM3L>i*NZC3l3&y1i`>tkL)~;J7g#S<K`UiIy6_4x{P9x>JuurP$ zP_N)v6GAQAD-pPD@Uf?t#QT~MJM3>TE)?oz!T1YzusgZf2;rl67KwFn3p>UoHJ#tV zP9)aB1#H4ayv*gVVNVlc+i_F>=LftinZ-}opIj;zTflOOM9eBSHYJti$Mr7`#e0(k zTb5-)2(K$F-4z#7CT*1u_%{jr_k*c?PKNOUQ;iAbQuBKM^D*x=k?cdHX7ye-&-HTX fvT=pxgcSS+uVT0(g3>Ua00000NkvXXu0mjfT@3ZL diff --git a/app/src/main/res/drawable-mdpi/ic_arrow_drop_down.png b/app/src/main/res/drawable-mdpi/ic_arrow_drop_down.png deleted file mode 100644 index a617f9437ad6bf761f451f513c22f180034bcb5f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 170 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k1|%Oc%$NbB3O!vMLn>~)y|SD4fC3LgV87GU zg~klU8$F#EHI)=Uuy;P{(w;c)K*YM5)1I6P4h;;9Oe`E1!dFebwRp{z&Cz)t-9d?K z{I_)lCEFOAIL|b=w@_~3nHe4N-`sZ^1m54b_|A+Iwo{Z0a<U*=Go1B#*7-be7p{5% Pw4A}y)z4*}Q$iB}(+WFi diff --git a/app/src/main/res/drawable-mdpi/ic_arrow_drop_up.png b/app/src/main/res/drawable-mdpi/ic_arrow_drop_up.png deleted file mode 100644 index 73f9bb6857aad87aec1e956f885aa9fa67acb903..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 148 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k1|%Oc%$NbBqCH(4Ln>~)y|Pi1L4b$hV$UL@ zEsSSUh2`|cCa@e8z5f4|%5^1s)dmJeCKe8X1)-PrG5C61zLb68SjpL*Pe*nv*khO$ v!g8#o>yXT1B|~=&KVA+21qYz=U3VA`9QJvTzV??Q&>99$S3j3^P6<r_uFWy2 diff --git a/app/src/main/res/drawable-mdpi/ic_bookmark_false.png b/app/src/main/res/drawable-mdpi/ic_bookmark_false.png deleted file mode 100644 index 7915747460f3186dd0f319bc24af296c57724b74..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 203 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjlRRA<Ln>}12Sl57H%^<8cq2-H z<A{Fa5BrHfL<N3NPGZz-JN&^rNT(rF$xNeQmHgI(D@}piYztXq0(?rjQyO*%cid<E z7_IQGp(`+_kyT(l%cJ`dT;>yQaIKKqq}%XtzQZ1tj<X9YI74`1WlxIPus^C&5Iere zjj2O=L6*n12Py*Y%!b;6njO5WzCAgyYVyi9Mza%>Yn#fSBm-T?;OXk;vd$@?2>{{i BNvQw; diff --git a/app/src/main/res/drawable-mdpi/ic_bookmark_true.png b/app/src/main/res/drawable-mdpi/ic_bookmark_true.png deleted file mode 100644 index 06eba446284093c1eccf813132963f9da105a6f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 161 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`Gj8J;eVAr-fh1ES5k8>h`kyb&e9 zaYVoIhyBDKq5{7sCoyWa9sb}Qr1QgHO>S$#m8L*$H(iNKVt-g3sXFAa9ra$2Boh5W zrsH*EgiN;-r$S!CD#e>klO1GukF0UI5|tCMRoy*ou8%1X!<B<v@{)Ux{|4I0;OXk; Jvd$@?2>=i>H~atq diff --git a/app/src/main/res/drawable-mdpi/ic_delete_accent.png b/app/src/main/res/drawable-mdpi/ic_delete_accent.png deleted file mode 100644 index 5ac9ef3051a0ece7dea48d79b1747aa6571d2d23..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 132 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`Gj-kvUwAr-fh1ES5k8>h`kbctBN zaD>0%hrLuC!&K$dP5)CK9ZY77ebkV2y+6tz>);C3#bN;mo5EEj{x!*P|7rZ8I<f6{ f-y5r$N<0i-cfQrm|EbUjG?u~B)z4*}Q$iB}jNmV7 diff --git a/app/src/main/res/drawable-mdpi/ic_delete_white.png b/app/src/main/res/drawable-mdpi/ic_delete_white.png deleted file mode 100644 index 8d48b838421fabf12a517dfcf6d199a029d915e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 129 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`Gj9-c0aAr-fhfBgS%&#Y^BxMPC@ zV~6~o<1G9Oic%sS^dxM=E~xTpl>J@7x>&3y${>qTRHwqV>7o9KjR)jA;)ODIyg#vS cvgRR%){Bkmxw=1(0L^6ZboFyt=akR{0D*!lZU6uP diff --git a/app/src/main/res/drawable-mdpi/ic_file_upload.png b/app/src/main/res/drawable-mdpi/ic_file_upload.png deleted file mode 100644 index 3e9f35e93f686acc950d3b7c09625c37ecb55c11..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 139 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjL7py-Ar-fhfBgS%&#Y^BxMTAI z#;(jH#uEt=84I?to@kq#!nw0eIG0nkO*oZvX`Aqt7OA$!TU%~;9AjNEt;<bUf>DfT m@1t2U1{FFIYbU=<XJq&ospT-IQ!ff=I)kUHpUXO@geCxq%r2P# diff --git a/app/src/main/res/drawable-mdpi/ic_format_quote_checked.png b/app/src/main/res/drawable-mdpi/ic_format_quote_checked.png deleted file mode 100644 index 9b28f144f3db5989c009145aa1124543f002a594..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 189 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k1|%Oc%$NbBT0C7GLn>~)y|z)XK|#PJQ0IWr z65X}#)*BeC7jS4TWb^#Ow5a>s#~F%04z}&y(;&(5(dw`VX9EKx6Uzy{s-BOpfD8_S z1^fMvtDMX-sr<gL!OXPETkQQjQDg5ese9F5)+})DomMuZ`g~L8q*ZO#<7~M#R$jcL lmo;6^-pv7Mj+E>drl5YoyT1kW)qw6{@O1TaS?83{1OOa6L>K@7 diff --git a/app/src/main/res/drawable-mdpi/ic_format_quote_unchecked.png b/app/src/main/res/drawable-mdpi/ic_format_quote_unchecked.png deleted file mode 100644 index 0b2b07fa009a6128124df3f298993848e2d71091..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 187 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k1|%Oc%$NbBnmk<`Ln>~)y|z)XK|#PJQ0IWr z7Tw$?wJma83xu*RxaceFdLi>ZjiYYELp}WjwxDyCy;E2?1QZ+^-YhsSv0e_yU|{_9 zyToVGD!1<P_uLubi>If2d>3iBdCAI$%8Sxj=VopBdiYMY*cq*zS3ihd-Q3V6wf66# lwl6;nnV48OF1%PEuC4bjuI1ulDWGc@JYD@<);T3K0RT^rNT>h+ diff --git a/app/src/main/res/drawable-mdpi/ic_info.png b/app/src/main/res/drawable-mdpi/ic_info.png deleted file mode 100644 index 03cf044b9196a2d9eb25dd2b0e7d450b8cd9ccc7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 376 zcmV-;0f+vHP)<h;3K|Lk000e1NJLTq000;O000;W1^@s6;CDUv0003$Nkl<Zc-qC4 z%?ZLl5QSF{NhOLFAz}-Hq9|TGB&fwG1nj|}rAV*<C8#a<cUdR!76#p9O%}<*1K}m} z$=jKUkWz|&N|X(7NfXkJ6q8<1@_S1f<C#K$0qH8u=R)e|0aQtAR$x!^NHvlJ)k!`n zV$TJ5*9cI>Z=|Uq!V2Jb2FU~rSn*bl%WN}9FAd<b%+vn4Iy%pXcSej~fC<Z76aZA% zos4vV9Zb)n?`NnH>Hsm!ngyVN8Ydm#1=A@Qk-Ep^JWBzni0T%ACj6rgu!ZSc02c5! zI=~oagqADPrU&@Lv_ZQVS~UwWhZm;}n!r|+82fgP_Uw=zc(-d>b^(KU8F8st=B)VY z*L5ARI3i4F12MYjmIcc^Im=(ywNej@%XH$;Sn_-_9W1U8<Nt(?XvLvnFw6hwTk8#p WfjTsTp>CQ00000<MNUMnLSTZVMxT=a diff --git a/app/src/main/res/drawable-mdpi/ic_insert_drive_file.png b/app/src/main/res/drawable-mdpi/ic_insert_drive_file.png deleted file mode 100644 index c9904f035b34d001e677dd066c9ebbe55366e216..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 153 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`Gj37#&FAr-fhfBgS%&#Y^B*daoI z<B0x$VK&|;Q4T#1`8&3<%vLaTXpHbav9$q6YHV!K@YdMcut4?728O#rt0Ek>JY6i- z6J?Nfuwd&0QP#Ho3foTAxGsCRuX)j><yveE@!3}%W$Qlj1=_{n>FVdQ&MBb@0Hr}U A^8f$< diff --git a/app/src/main/res/drawable-mdpi/ic_more_vert.png b/app/src/main/res/drawable-mdpi/ic_more_vert.png deleted file mode 100644 index e2fd14954500f1bcd08332004d6e72739375188f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 127 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjZk{fVAr-fhfBgS%&#Y^Bcm?Z~ zEeaeR@ys8!6}~NRWmPzw_&`-xr=m6GAa_*61O8IW69xA#hM3Iiatpqgp(W+(x>#&N Z6Qjo5`&zE=y+Kwnc)I$ztaD0e0sw2>DmMTC diff --git a/app/src/main/res/drawable-mdpi/ic_send.png b/app/src/main/res/drawable-mdpi/ic_send.png deleted file mode 100644 index c914ae97b6e506d6abf13cd9ddf7898d7d02a255..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 257 zcmV+c0sj7pP)<h;3K|Lk000e1NJLTq000;O000;W1^@s6;CDUv0002UNkl<Zc-rOF zF%AJy6h`4G(5t9PY=E!<mOw+z66h#df~irk1U4XH3A8$DQE&=m5<}j--fbwpVyZtm zGxJ_hn1z9*;HL)GXdz`aaJ@TVfUMQP!x>XltOlag`CJFo`J@BleA)r$e9?zAim0QD zF_zfjqRr>}vJ%LliZ+IrV}s+Te3F4YYUp5u1-3ZF3`|gtOH@JwJ%m_cFG$o!#^NP6 zk@WqUJ~R0K(Oxq6Ix5~~_~x*4%Ah%}MHwU)jw-|d+{q?xDVxL}pq;B600000NkvXX Hu0mjfQ|oRn diff --git a/app/src/main/res/drawable-mdpi/ic_share.png b/app/src/main/res/drawable-mdpi/ic_share.png deleted file mode 100644 index 31ebd45aa7dab0e094060670dfe8ca15723ee2b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 365 zcmV-z0h0cSP)<h;3K|Lk000e1NJLTq000;O000;W1^@s6;CDUv00006VoOIv0RI60 z0RN!9r;`8x0U}96K~zYI<<v1s15p%(;X9(Df)F?0Dgy2%jUW~xv2g<dO>1kVYj6)1 z3L<tkDoA2XV=5bk&%#%XaYD><3c&-fnYr(rJNN!f#J?66(ZxeLhghgHpzFI1>I`_Q z2<Vq<=6+$m8WD|Ybu$N`Kr13{BVwtd<YZRQvUwBdX%sJLqk{p4*-OSc&XVyPjxcpR zRYqm(?o)T|)UDKgb7tdGKoxe-M+-%^c?#%Nn7<}svNTT7B&xD;9=~{6QL`Koci6{D zZcs#gS@JNU*TEh}X<R*QXQ4PHcrBs%o`N2+h55RJHgHh_;08Om#1(eyAZ-qtc%FcC zyRNTkq+N~cx?GoyUr`jJh!|A8swE)l_=nH(<n!0vP7AJQ$$w5CWWT7v@zQVt00000 LNkvXXu0mjf6+)S* diff --git a/app/src/main/res/drawable-xhdpi/ic_arrow_drop_down.png b/app/src/main/res/drawable-xhdpi/ic_arrow_drop_down.png deleted file mode 100644 index 79f4545618a7a26528e002aee4c03004ec49a548..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 248 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@ZgvM!`#oJ8Ln>~)y>U?RkO7a&#SrJY z(d?`j)Rr*j_3TNy_t5-<+D6s*{_CGFeOF*$V&M=_aA;uQ1e1(REFKLEKoTSfA{Xpu zId!*sN6zo2O|t2a#80QqS!t{hU8u(YGUv$5eMdL(K0jhQ-`8UKvjsT^EiE<Dn9sfR zw0dj7yV`A5VN}`1EssoeS7#o{y#4HQ+vOj3CaTH2cSJECWHqA@m;_okfr0Utqx>cw W<D{^uTa<xbVeoYIb6Mw<&;$S>uT>iW diff --git a/app/src/main/res/drawable-xhdpi/ic_arrow_drop_up.png b/app/src/main/res/drawable-xhdpi/ic_arrow_drop_up.png deleted file mode 100644 index b382390165794b253734f39830aa4bac9a297795..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 228 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@ZgvM!t36#DLn>~)y|GcWK|zGYan(k@ zR~r~^Uul^l@Z<UH1nC(Cx4+);{j9*i#KIw<;LyOp2__ktSUegSfFwweX$spF_XahK z_bZrZJ)YvUsw<dnrI8=!l2;bTCkhqxDJ^{<<Lq_FvS~`&W?4<abnPImb7o6Y=IDC7 zv^YKSU&CgRlb;!(rZWnG>;RcN0cLswL`v&BW5O%rq>ryctbopD@O1TaS?83{1OW2z BNU{I` diff --git a/app/src/main/res/drawable-xhdpi/ic_bookmark_false.png b/app/src/main/res/drawable-xhdpi/ic_bookmark_false.png deleted file mode 100644 index cded6d6083ea3e83cf4913acb10142b53c6be595..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 336 zcmV-W0k8gvP)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm0003ONkl<Zc-rmR z%L)Ne9LMq5P@aIYc6kDM0bau1Yq0YU*22O9<st0n9c(6qja<fW>aQm0<Q#M6()<?R zlFns5bx?;>pN^d@=MX>u0r>(n&=Q@HA8{A7Mon9QIyzW*@XwAq2pzy8hKGN*vH{q~ z2sqmS+&?yn`UB~ktgo}dg8%{uAb@~e1D*sBKmY**<Qm`;KmY;S8w7VrwJZX<Xd~ZT zPkG%*JD`O6$W`3;xH6`cCO{R9kf(8R<;k3Cl7KdvquU=haKYS}tQ9*z)fG)pOPa`g zI%^~X*r5R`f0<uFLm87gz!vpT;fHmKGIpCZAbd<rf4o%3%Njs+OicTBydnqa923*R i$BTdR5kLR|8R!Lz=S`=#j63-N0000<MNUMnLSTYnPl|Q` diff --git a/app/src/main/res/drawable-xhdpi/ic_bookmark_true.png b/app/src/main/res/drawable-xhdpi/ic_bookmark_true.png deleted file mode 100644 index 368c9eadc34e4d3dbfb08add9dd20688c43694bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 261 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpUtGoCJvAr-gY-ZbPoWWdn+P_K&B z*6}M#+_A$iEa!AjZm#N{cf{8<mc?|RqSM46pNu5$e-GomqCXwHJ?ZJ|&}+|)fMzUV zov~u=E{)4Y=3B!r2Q<XYWs>=`do%YT)(xEnKm2zKG$gwmFlBilD45{HFb}Anfk7ej z05_PS!V7W{5IATx?AE$+ChSJ~Ty~i&PQ6+C<X11PU0&P}boT0l_WwL@cR$_Fcy;EF zdmBv7YD+B0RNHs;?CR2n(>^t;&vkp-0ZsU_z&tfp!=tb%k_BX-r>mdKI;Vst07~s- AhyVZp diff --git a/app/src/main/res/drawable-xhdpi/ic_delete_accent.png b/app/src/main/res/drawable-xhdpi/ic_delete_accent.png deleted file mode 100644 index 36f26ac71cb59737675d270921fd6a0a14f5a30f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 196 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpUtZci7-kcwMxZy0hl81Oh;oVTpv z%)G<QJH%{faO}D+QnLNh5svyF(d{--8Y)LJdFu6mdKeDGPC9jXlDWg_53z!}?cIe8 z3>C~D_$wH9R9Jze(ZCtT_D3IfvnB+xq;MZl$mKe`K4{CW-moJzv6cPllkfAKFOvf5 axL?kc@omeM&GL*KApM@MelF{r5}E+t4L=+J diff --git a/app/src/main/res/drawable-xhdpi/ic_delete_white.png b/app/src/main/res/drawable-xhdpi/ic_delete_white.png deleted file mode 100644 index 3c9e171869415b851787451c4478683af11260be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 192 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpUtc25__kcwMxZ#Z%_81T4UoU^Rr z%)J#a4!T^ZU9+HC+gIu#d)oD*Hc=WbA))_d7=bz()Fbcv_pxPY-WR=CbfcPqp@Z## zd<PT9#}c3<I@rO?clgt8_5?!~5&i=qn<b~jXHUAG_r>YV_o?42%$|BzZo3TBA~9ds XvW#Wx(i!q6Kn8fa`njxgN@xNA9}hlj diff --git a/app/src/main/res/drawable-xhdpi/ic_file_upload.png b/app/src/main/res/drawable-xhdpi/ic_file_upload.png deleted file mode 100644 index a592393e0e54a463ac07d826212514e159c4acb4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 196 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpUtZci7-kcwMxZ+LSZP~c&>D06rA za*?Ql&<jUuPO)s7zdgV)F!bdfCZI}&c<Xt&oI4KRm%PhR{3p;Q<d30C${#_Ol0DW+ z%J)PkioS0<(Npf2a(uR+=p)|_t&g`mygo*EWPLo%alSpL^wi!XAVa{QMwf}<L7B%| kW(EgShV23%u|NC;j1F}x-XGm?=|70?>FVdQ&MBb@02Zo6pa1{> diff --git a/app/src/main/res/drawable-xhdpi/ic_format_quote_checked.png b/app/src/main/res/drawable-xhdpi/ic_format_quote_checked.png deleted file mode 100644 index e56dbcea37a5c03b96921d3f5140b41692dae09f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 240 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@ZgvM!+dW+zLn>~)y|t0I!GOp0pwD5M znUfi3D9=8~;-Q&zbmO`oYgw0vE8hBg=j=arMgawf1_nkZmJ=X?1H|J263ZF(c5i!a z2bBX0!{v=?i{1+J+Y8<2XO|MzzaV@+|J6;7k{a8I4yvy@S+oNEMFM74EowM*MVK*U x)jW;`L0{LfX@#H9T2S=$$6r?L_B9B-Wu9?i16Pz9Qy|a_44$rjF6*2UngB`lO4$Ga diff --git a/app/src/main/res/drawable-xhdpi/ic_format_quote_unchecked.png b/app/src/main/res/drawable-xhdpi/ic_format_quote_unchecked.png deleted file mode 100644 index 18a5f529b731e738702a5372247df5f477a8366e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 236 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@ZgvM!n>}3|Ln>~)y>*bcK|#PJ&}*^g zuf@h|5412#7kuI?zWd^|z2t3)#W%kzFfg%j2q-u-Fi3(3Mj&qjka(f*aDLg`UHlL! zkSJIUn6Y5C-Og{V?eoR&>$A_|*1w>?@BWoyffwJuhA_Ea3FZ_D^cM~Au?=-F{2IdG zdNr6)B=mgVf*n<5%tx<2{w@x+L_mQVW~LEHXjg`Q+)X8~_|BDuK<6`fy85}Sb4q9e E00$pQz5oCK diff --git a/app/src/main/res/drawable-xhdpi/ic_info.png b/app/src/main/res/drawable-xhdpi/ic_info.png deleted file mode 100644 index 33ec308a51dac1c7859fcb39e3866b9bc3e7f032..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 796 zcmV+%1LOROP)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm0008xNkl<Zc-rlm z-%1-n6vm_7C~9vcA)>9mL1_^p@j(jBg*T$)1zHmG0R7`_r37qm6)SjCguX>lylPF0 zVsEr*p-MHq*?t435DsV4nc3MLEj#dmY@FHio1Ho5%$ZymhPj)pTn3N<Tn~UjXdY@p zJJ12tfqs)Z^i2J>0#&GwcYqma75W;Qw-e|&H0=YR1g+ET#%*1w1r^f*Sb)BV?weX> z)g%G((3?I6{Dd~3C8!J)pdnI`o-IS0(0QM6)Yk}H1B^oNBVPCsT7*UnCS#O9KShkW zOaJ2pARl4;FX*w!Y(<P+hb|)^0v7<Ug~8R#-E-*A??df~<rE8GK^XJ{c_G(9X#(04 z-uK8BKpFW%nE6tIk#$1&65q%n7z3;eYu;qp@TS}E0d&RszA^=v5rWhc!`ZY2P-+Ol z?v4q-s^BVv6akcXI%NHy=>iN2xy_=*dX58-qoCK@j-de^fO#Rpj)du_%45(4vt>>P zpvgLIc+B^=m@N$*fF0Ip$s<6G*|MzzaKJj1JpxpiE&DnE9oDH}`SQ4%_-`=nZD%?F z-2V@G1Q-_L!T%4ymr(JhEg@H%*ad*qCgyH**&~3J8(m?YHa!BoWn<KJ0QhG+*FB#) z2DmMx5@p?F?!-Yfjtjt-&yj92r}RQNiRDuSP_Fwk>;Kf`JTNW9gL;YpJfT!4v?<dg zWs41RN!5d-0cM3G<x870aZw0rZ8~@-mAp+tU)VcOp>f-?N>!N2y@VhpDNynDFm7S1 zB@Ei8>VYfcXN8$pZOuhxE}$}BDC~)bg?HlKrYWp>)!sq3To!kCBMPyHlx~a}2C16h zDtnFBI)|IgRuHkAdL#B08CIc8a+p-2XEn-aF8YkKrZe+#E;y=G?sMHv|FvOVUNIG@ z+}Cwr_!as2aUYj_cd24_Y+?8jr3X{j<(hSlywW!L^E3KFUHW^UeydYfIgnj+X8;*M aeEk8vDd_O@^L|qR0000<MNUMnLSTaO8*KLg diff --git a/app/src/main/res/drawable-xhdpi/ic_insert_drive_file.png b/app/src/main/res/drawable-xhdpi/ic_insert_drive_file.png deleted file mode 100644 index 1f2e592d2579cf2c8f32d0b6f4c71772651f06e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 249 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpUt1D-C9Ar-gY-gM+*GURD}IB(e_ z-RBNXi@pbyq^&&0w<APm*?P}b`wwN2PqgpuO-Xw>e=-BZ2gV#PK2`J8^AAc-@YY*4 z_n`2G&1S|GjOPwDKkZQUE*DhT>Yx)@#lcwQ!s5`?!E{1kA_J$AR6y?w#(>rrtQ({* z3O|ruB=w<$rN*g*IfIEE=#Ykgj38&hK*QDs%@02U87<hDzHuGc_C%`SPfTvA@YOZO nkDh#)d+ht^^u;gO7#^g@-6{%B71*#z6r|D9)z4*}Q$iB}2&Y=N diff --git a/app/src/main/res/drawable-xhdpi/ic_more_vert.png b/app/src/main/res/drawable-xhdpi/ic_more_vert.png deleted file mode 100644 index 197203bf0dda15eed7888a38cbd3101adf83a25a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 203 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpUtNuDl_Ar-gYUUTGXP!MoS^cTML zRP|#_;ELCUOyREYTH5A)c>i1MS+UY1o%4)9^$ZRAOkuH?LSrww&fU(m!|vad=ay*- zX$+J0%s<PtfREuO(}D>0Ba8|W3_t1;-=|;K4XazcFaE|I@w6Hnen|#~EdshO+!vjI o)DdT(GhiGS?vE2d#via}<b9o6vvEh6csj^7Pgg&ebxsLQ0NGqc{r~^~ diff --git a/app/src/main/res/drawable-xhdpi/ic_send.png b/app/src/main/res/drawable-xhdpi/ic_send.png deleted file mode 100644 index c104e00d0a84603d3118c9a63980483b69620d7f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 419 zcmV;U0bKrxP)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm0004MNkl<Zc-rlm zu`<L^6hKp;SD|Ib4=|RVPoP;^K7r0s@d>uJTkr|g48teTQc+`w)9g$p6HJnO?|aw0 z;xy?_a`N)tO*TL5XP(KDKoUp-|4-l=wqU}mz$fJJ42Lk|Rba$B3}MBqK#|+n@~XP{ z^@~7W$m<}6yqXG>^IG;Q5IiqQfpT8cp#*XvO!CqcFv-hGKrJt8fnr_*iM&Dy6uE)T zrg_C6&?>L0i<7Vb>#z$aZ~+hSVVGA(<2*11v#<)=a0F*?2QMM=l3tg!p57Dms`9ej zw@5s_w{l+A0&}niJ8%r=a1XCF1WsW|GoeM;fIaBLB|Hiwv=37fFLB$uSobCF!g$?f zRO2q@O*8TGA^UNq@vxQXdfQ5jGU<5R%r(j+27y*P&X7mSfkY<OhkEf$tOV3D(H?B6 zXQDM)?8Q1-{A;*to{7YGU1Wj~;s-|*6X?1ESFvT1{!%7^B#;E+<r_}O5VCZb^)~<j N002ovPDHLkV1ft}yjcJM diff --git a/app/src/main/res/drawable-xhdpi/ic_share.png b/app/src/main/res/drawable-xhdpi/ic_share.png deleted file mode 100644 index 4560123d14d7eac6a299901f33da38480d9ef86e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 675 zcmV;U0$lxxP)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm00006VoOIv0RI60 z0RN!9r;`8x0$52zK~!jg?b%IB6;T|=@iUp41VM{7+O`a;rHdZiv@LrFZF^XR5QWsL zO|Ky$tT1ZbrhEmWSz*sX1qCgF77}R@SbbW|7;?Qc_a41^4DJ_ZbLY(A`@eG@elrt7 zn>KBdf^J;EQ_L2}49=q~wO=LZD`d-fg5K1gb-@-qtB_x02HmNBmw|Il$S*RS+IJav z6j8ubSwGo&N-qWTA%v|>HlNF~Y+Jn(n_8z7%|a_WNm2j?LkJ=+dA(LHQD7(T;!ni* zPd|y}o7E-EM~ahr8O3qDuOs#wH}J4RKHWx!evFrhO=6&E*NHQj#?RuI#wm2B5Z{5Z z;vcT%1BTXJsu|FMVR;y<<p(aKCxuwOv^ZVd_RgZs0H#WY%Q*ViUAz!$loqGt6S3ZK zd6#s!Xg)30GLMT=CrEK=k$iKygTAEVi-=2$vpAf>vowv0ON(E#EZg21r8rWi(UwqE zz?+DE;K*uaTFMG0F+9Nj)b1gKRV|~xFlr;LMpn0xea98leH2{JBD!!|zN{`yi?vZ= zvZTl_I4ec6j0HpT#95C|IEjwbo|T{nBbX~G<Q0yk_G}1t<9<mIa1VQmw!3f>k1>I3 zIF!1E5JCtzink?2EZ}Ozup6}zUhv8nf)RYHxFcoUPVN5>^vWMMV_&OmxLy7LK1LKU zTGm&RFqdW7WC-DN#3lR6PNYnun_JOI$^u?Qw0*v27ApmV5p&>RYTvrZgJ2`Br}ivG zzCYZmT75Lw$dY}bS&IC7!HE#U-r}d1A%w9k%O=uUwQ2Kz@E4F4M)jplRPg`+002ov JPDHLkV1fsqF>e3> diff --git a/app/src/main/res/drawable-xxhdpi/ic_arrow_drop_down.png b/app/src/main/res/drawable-xxhdpi/ic_arrow_drop_down.png deleted file mode 100644 index a62e15baad01637ff0221b009c84625eac71a896..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 396 zcmeAS@N?(olHy`uVBq!ia0vp^IUvlz1|<8_!p|}=Fa~?NIEGZ*dV6bc@1X#J)<7@C zMK5$4cD-mR-Js&pG5_d~dk<OS`)XKh&d<L4@W<w0e>o-tMqz^lCbfhEEItPsIA=5f zxs1$e2~2E02UvJ!G;m6Q72r^}E$sKw%a?X8xqLtU->dux?px0yJncJQW(Y=P{!d() zVHnZb-e<B!W6hP|B(5l#uumK7vbT7w`SN|k+6ze=rQ+t;_losiHG26&B+4f2az<9} z7OpkhA|FL%m`3y-zF)pLG;yon>-()??N@8|ev04XwdULJ4dEBFHmb!W*mZ~Xnm#@D zGjL1Q8c%Je?-$$>d~d(p(Q3w){YdDX=`D>lE2D$Ow-iQ9zJBMM@WwZ)Oj!Me=5dUm cu)U@)sIz%d!QFLCz))uJboFyt=akR{08B)k`Tzg` diff --git a/app/src/main/res/drawable-xxhdpi/ic_arrow_drop_up.png b/app/src/main/res/drawable-xxhdpi/ic_arrow_drop_up.png deleted file mode 100644 index 935d805eeed38b2f56d6153c7ef8731c15ffabe0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 308 zcmeAS@N?(olHy`uVBq!ia0vp^IUvlz1|<8_!p{P!-<~dxAr-gY-ZB(*3glrusQ)y) z!;N8A0n^#Z4hPkO*ECwk`mH<ux^m@Y!3NG54UEDDjLd2YOl&>}Sa@bMa7q{eMG~0Q z5)QEV8~`gYW<nLZ!N1%8fKtT!%e-qEzgqS>&+ai5%C)*?v4uBc@r7*(y^gnAOqp_} z!{l<6!=!Sx!^Cop!-R6J!}xf^c<`XJ>*r_h#b!T-1C<#tgg|coHF;m>pUsPct2&y2 P!NB0@>gTe~DWM4fn{iu? diff --git a/app/src/main/res/drawable-xxhdpi/ic_bookmark_false.png b/app/src/main/res/drawable-xxhdpi/ic_bookmark_false.png deleted file mode 100644 index a837b04d311ada9e64097ac3831e7805f12b9ff6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 478 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@Zgyv2U|j0y;uunK>+S8mUWWr@+CDl3 zzP#oen7)_!rRWRZ9bcJbTuKVB`Q{(sJLkHGN#9YxHSoo{$=yv0I)ZX*n3qQ^>GUm{ zG`T;$Vw#D3yZql^F3YV;CqI^AWoL3=U}O;h5doW)U7fZoVEw7$EA6|2th3bg9X`K0 zrsx$=o^{Z4!vC{7&nceU5WU$g-C?%nG0AOjg<kAoaG0*w7{|r%<(<$A?S#N}b<=Eb zzxLd<Aisfui9-R2Fk+WtfY<`I3Pen?oWKs}e5o(pnzxGiOLXwtRqYdBzdyS%ZEEAR zQ1`v9caHymb7D@k<O0)Du}|iyG0eqhvmzU%vYfx_?3r@Y_<PnA#*9GORnJB4#nlF} z*WX*F&lBK1cU2wR`k&v<ZjN$g>bkZ3)hf~8>oS{5{~uzqU1e)({p?<G*8MrbmJ0Q^ zL!y0scO)*$U8iY!;f2J}+PFI(Pn!nZkT|OQ>c>+djZ+e;H`kk;{PC3S#4(AbhIQu} zFG(oRe*BzAquX$kVO<V)`h6Qn00Mni_M7o=p5A>oab;k%F)(<#`njxgN@xNAx>CZ} diff --git a/app/src/main/res/drawable-xxhdpi/ic_bookmark_true.png b/app/src/main/res/drawable-xxhdpi/ic_bookmark_true.png deleted file mode 100644 index 0253be0232aad62dda91a5524c7decb52c0bea2d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 362 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@Zgyv2U^Mh}aSW-r_4c+e-@yQpwnSl_ zMuY7vvtJ6i++cidkf-CS)UtsyxYNZWVEM`1qy?Ae-<}s;%l_Ww&r{F+4>NhDb+a91 zXL4X*WDx)n0sEpZMMQavYX-bh%U!ziN*U`4^|zvdkF30Ea~FI#dDF5(xYXc(AaBMK z1HUUS!Wp5A3wqTq>|}BX_g&!5+Q8(yKpk!t*gye?rObO7m^c&~kO(bV4F*&Zkb*3( zlIb;>8K2H(Z)LagG+z1n>F(W^?(A7!=J4?56m?T!xib~djO%&7ST0_(e|l-1AM@W? zf!8jbJMX!`#Q0S4`e`Y3=NN9z2o(Gr%&wK>X7+qJTgb7VoHPBK3*J3r1iL_~fnn2a Z>HR5DD|dIF6$FMMgQu&X%Q~loCIF3yg027n diff --git a/app/src/main/res/drawable-xxhdpi/ic_delete_accent.png b/app/src/main/res/drawable-xxhdpi/ic_delete_accent.png deleted file mode 100644 index 4d806633b09e2c3535f2460afaab269f6089f818..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 279 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@ZgvM!_dH!3Ln>~)y=};K$Uvmwq2E`& zT^5zr7e7}p@CUapQh%X&WUbqY72Q*xY^^!GpY7K~J0q2|?`pEX*m5*5Ffy@l2q-wD z-dfgn<wvq}T=GPR;KEf3XL*-fT)M(~Y$jN?fx*&~JHU0p(KE6Ra4iHG0U8U^73R3R zEXY<^pr>@fP~d`{(gm$j{)WrTZ><nNX}&T#bx!G*+27vJE%Au`v_Z#k!tOuOTmS!) hJI@PqR>PN#;<L|$Jy~$M;Xlx)44$rjF6*2UngBm|VxIs2 diff --git a/app/src/main/res/drawable-xxhdpi/ic_delete_white.png b/app/src/main/res/drawable-xxhdpi/ic_delete_white.png deleted file mode 100644 index 5d2e8ea3b964d302f8490b809af9783495795b09..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 277 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@ZgvM!cRXDjLn>~)y=}<XWFXRzsJ5qB zFYdw%%Zo=|a9Xeyu2xOF;<}-B!upf@&0dOEykzk8T6yui0s|8Zhk$}Z1H;spGhSbQ zzk2?+8!8uK=4g3jAJ*(MDR17Y1C(QAVmaX()u6?coAwT_0VoL3iJRfXxR>c6k6>e7 zW5ccvhv^Ou%R3x)-!W!5XM5d^Maue#+|<Hv-t%6{$1m^qzhqfHw=K1^@s98M(A{4u h|Ku^iOkdK!m$6_$R|}6UM=;Qz44$rjF6*2UngG!%UHSk3 diff --git a/app/src/main/res/drawable-xxhdpi/ic_file_upload.png b/app/src/main/res/drawable-xxhdpi/ic_file_upload.png deleted file mode 100644 index fca1a0a0c1c6456733527dc33b997e498dd0dca8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 254 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@ZgvM!M?GB}Ln>~)y}pr`#gN1Gpl+@8 zceV0`#yyN@r^hi*R+zW-+TvOP21X_p4gm#+hO96Dn6@1J`JQ#lan05c(d9frsdI!p zt`@FSE<Lcb>k8|0sUY<^+8%ccE={z0v_z@&sHgL*p2<yDWS?7HVwtnpBe<YX(f5#L zlL@c7Os0~b#-)%s21`y_D0<vHpLOL}-RB0lO-PJaGAs^22`Qc{sSx=I#`+)uu$vf} bL@u&FTU{gj)_+YS&_fKKu6{1-oD!M<LAzDX diff --git a/app/src/main/res/drawable-xxhdpi/ic_format_quote_checked.png b/app/src/main/res/drawable-xxhdpi/ic_format_quote_checked.png deleted file mode 100644 index f23788f70e0a948fa362534ecba8817b91ae8a37..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 424 zcmeAS@N?(olHy`uVBq!ia0vp^IUvlz1|<8_!p|}=Fy?!@IEGZ*dV6PMD3hZ|+eOt0 zJvGt=-UsBiaO5_rZDAJbc+sGw!6>a@e%WDWg7l4Yi!*)i+2a5G$Uk5yoMSGtZSJj; z90yo@4m5DiXkZjJU}RQHU}Ez*z``@5fm6Z&D3ZXWmH<{Dsi=D+e(As0a}P8yGPChW z7$lI!$h*3zgsZ3EOxg381NWGeYo^O>zH7<8CiJC{#3S3sbBh^%bMzEQvip>$=dM}! zMOfmI>Fc>$5B4<*`aPasf66*LX)lZ058buK_anKpBY*MmY&>0;uDiiEp=Ev0{J-a< zBL4nZyo_&SVY=*w+Ju(kmj~y5XRns}KVdoF$2aGGH&^QC@SLembWXU(EzSHn?uNjO u?}v^Z*dzYyz*7DgE)36N4Gq(aqU%K#Y!*9kU>z_97(8A5T-G@yGywo@*`BHZ diff --git a/app/src/main/res/drawable-xxhdpi/ic_format_quote_unchecked.png b/app/src/main/res/drawable-xxhdpi/ic_format_quote_unchecked.png deleted file mode 100644 index 3d17a5d900ba7da6e9457c4e741b116c985c19a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 421 zcmeAS@N?(olHy`uVBq!ia0vp^IUvlz1|<8_!p|}=Fy?r=IEGZ*dV6PMD3hZ|+eOue zGd0o&gf_72GR>NywuK|JNlC*|T0woX!^{Nf2eSN|5AQxW-Tt3+!8sP|DM4&sCkr-k z&S+p1Heh5{OJHL2Il#g*qk&Vx04S2cq?T}i#peK6fw5E6hW&1~ujU?TU}R?FkuXRg zjqz`_>stwlhZEkO+u87zN%_x}Yd7D`VZIjpRz%{F?c=${48J*g3TCnSl&5E}d45aP z;E37lxoZ#dH464!o?m~;Iyz}DtJ{yYxkmSIa%G49=HvM|^Y6K^1XY7WJI&JeZ)Uw_ z@pnaZyT-d5=572vA3~#deg2oAe_8(1TIW3=<~?p}=Ff3A1ZR9dbnd_&@iLZYdp8&x qyl=HDc*#5+=uJExhlfmT3F|b?#4Sr+?5P9>KZB>MpUXO@geCw{?w-Z~ diff --git a/app/src/main/res/drawable-xxhdpi/ic_info.png b/app/src/main/res/drawable-xxhdpi/ic_info.png deleted file mode 100644 index f8e64ad787234a71ecb74a43cb1c5359dc52653e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1174 zcmV;H1Zn$;P)<h;3K|Lk000e1NJLTq002k;002k`1^@s6RqeA!000DCNkl<Zc-rlp zT}zZf6vqwAEmtj;HN{);1B9vgf{LXJ-UNB!r!ZMX6hDGsf(ZrU8zoxaB#H<MzM)7+ zUm!HEGFw*Z&X@4%44eg%X6D&>+h=4B{BM?J=FIPTcFvhON3%T7%W|U2L2!T^AP2|+ za)AC(7!(8bgQh^cphHj+bb(6ZXS?_v^4%6t?rjBB1nL59AplW32W^7lpvSiXP$Os& z^v6?gm!Jhuy^VmHK--=<BX4Gd4S-5OAHB@kG^jYJfZ9R7z0BJws4Yl<LZEkPF5)L> z2GofWtrQdi<)9+?Sq#533p!47jyE_~MgbLo)_gjgM5ikx=BosafKGhQxdO_|6re)T zS07IPz_1)voJ)0sj(p6&hrSvGRNw;+$#(`6gSjd4b_`<3=RwLh1t{d>XY~#A#9+o- z4%+AVv?{VEi8%9?<H)?|(~{IfOiEcctQ$}}$AM8$b_NfZcR}MEA7APMRKm$~Mgw#T zALryrMLGb@a(-6X0Rohb=QNtVR}H9%vmwjwIW&{qlUN&fy-Gmaj8Lv3TIm2p^ptUv zu%QZ2BVz#rihdHh01*u_#;;QWXpxa2hb;h<k7qyH-YEsBi1CWX6>h3J0TJ~uF5L=c z0Ch1Ao?(js<uMMpuVesiF|HD9t5DER0PCWF!i)>{3JU>MQ`T|@dLRNQ#<=XVvBq@= zl%TAsSp-l&Ww05G3xS^~Yw8mLG({P#(_%nz%9<ub0PRu+i&+e)m9nNC5kQBO!Adna zt~<=9R7RQSKm<^dGFZf7KvBv(2@ycF5T9c)pb(?x?*OR=<bGmqla|}0O@?_>fRu)L zlZm1!K(s`0T;)+?)?z?&lzDnZ0JTsCJGK-M>#+J<1W+y`)K^*vNcnXK(I#ck5eos) zdYIN^ZWL*o+KFXXuK8F|{hxKnUfR=IOS&xr)XS*rMP<uAv=Z)-Z1<KSK%|%H7iIj< zD(YhOj0Fr@0BD#oevPWq^A@A7R32bJRgAjcn#$UI17i{U*eDP*K#xG*DdS#&YE`$t zOfwd;5U}<a(nz($@OM&2e^4<aR1zBtP<dyP;b+oIqw6)@$=f*XZDRpw!JFdv_(E3; zUP>bz2No3UNuqns634fpbjKBOgj~6<a2(mk<|R{bsu&w`%9cU*OaMxy?t2`EF7b)! zYzZ#FJcsx9XkSE+MzVj3z=M>k<@YGex>FCRkC7qYgcB8=ONFDWo<BRm7L;m?G$PTd z22bUuKIdGPJyffBnmO1nl#V5^ksyxu#AW!DL#QZz){5VmV_bI8?6t_AqXW?O6yVg$ zyd~2O<)#3ou17v(2+S2Gh=nTGq$|3R8-NXiaLB>4PRCkw=O@JJd5{11Tq1UX_c^sX z*I+7<Bd<N_CSAumxTu}s+tMKux`PPlx=00~8S|J4tZE)$lsZQx@UtB(>X9qcXQ2D0 o{dNDq!~t@E93ThC0kT(r0kE_Sftt4CY5)KL07*qoM6N<$f)uq8Qvd(} diff --git a/app/src/main/res/drawable-xxhdpi/ic_insert_drive_file.png b/app/src/main/res/drawable-xxhdpi/ic_insert_drive_file.png deleted file mode 100644 index d0c81e69875d53ca40eb45d2dd42f79c18d63adb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 364 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@Zgyv2U^Mo0aSW-r_4bY-7n7kt>%+Cv zY!5d*_?sf_KjAW`-iluK4;)Pk#Ik%6q9Z%g)P(;vhWkzIPg$kX`+c9{d}byG21b^E zr4G3#1UB*R{PE|h4&zrvcK!HsOaXT+tJjCGD_Jo0x_-FP1vi05OM0hVDiLFe%2Hlx zV$0GfmAhohvgHO7v?hrvn5uX?Xn9;~I5JU(sZ%MERmgc0k4jUDtcG<EuS4X-EXGr9 zA;JM-OKvsnb3DcOMN1}wk8^?Kl2r{?E;2H4C^RrYh!^<|a&Qhp7>Tt&s^MK*;W{A) z>%$I<SuWf%xS+szrB#Oa(UJ0hYgq!$9Fhn+@-q0^uhXWt^Q`g;)$Vf1o_Jic=GK+c jPmP=)zX~{%eP(-KUA^AeeP=Q-6d62S{an^LB{Ts53L%2k diff --git a/app/src/main/res/drawable-xxhdpi/ic_more_vert.png b/app/src/main/res/drawable-xxhdpi/ic_more_vert.png deleted file mode 100644 index 8492369d0f576a2fc65a6e2ae102cf1378d55d6b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 297 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@ZgvM!A3R+gLn>~)z2V5!<RH<OSpHJB zt52hIyH9jWiAbUO*(5Q?j-6b8<~P1);$L(wdg&CcXn7Wg1_nkZ77hUgW|kKV9DL*E ze?Jj@>ewE=^?iILXRDWfHGUeqh{;siV!p@n4u{%bfA1(U*_JWz3N}uYbud<Nh?g#B zxU0-mYTa<F!=dzNOa9#SE9YxM>zJ1F&ME$~+Aa29aoZ=Od8e(H|9w9B@g^>yML-)h zySf%FTA`uU)iiSvheu$Dh^VV;U|>lkE65=Z4I&^OM9_eF2~ZhW^{zEcP=|sQ^=&l| YzJKFD?}EyuK)*A1y85}Sb4q9e0D<dk?f?J) diff --git a/app/src/main/res/drawable-xxhdpi/ic_send.png b/app/src/main/res/drawable-xxhdpi/ic_send.png deleted file mode 100644 index 0bb93fd0f55abbb05b6cea56092406c123377f84..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 553 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@Zgyv2VEo|e;uunK>+Nh?BbGoBH}!-f z!Jt)X%u^K8IaNF&nIzScIMvLAH?SmiC2=lsIihiS-;&k4qWFJ3-&g*=I=*1hNx!?7 zFWZ0LYIV4-yQf`9qoWCq>WY}RInHkC`pLvu!DwsX?Rc~)$nJo^nt*_f3v|jiJ_!#E zm~`^J#*;s<xK2IaE;D&SAgANOXX=U?EB>gkvQC`O?YQi7vF?eOy8VA=SUA+y?PFbe z-hc9fnmS{VFXeU2_kU)JO?fJo^Yg^{E`|J`k-|@G>{mC<c`DwdaPg0m(3JD*wRJPN zbQ(%Gu=^cUtzelCwDIa2mKn^e6WC>%iwpSUoKN|`dbPgvm)G;>kKcuy{_<DbzSsZ4 zy5;XBW%^E^za?#V@@2LDsq>2#RBm7^JIJ|%f&al;M#uDolTJz93CwSr?RGHvH+9N3 zWcrF{uGG}1o_LRC^1gr1V*MP~_AJR0G4*j&{vT2*XKLc-IJM_iO~l%XfjUiE=^}@@ zH%CdfYG|BYar>cm_|G1vpKp|>O$>EBXS7M}M5S98OXcsXRkeRpA6P5*a))HPEfZhi zwlQT%VrOuvo89#W-;^iG6Yqq$t?N^oan|FPLHEy|C4J7UlLIHSzuKc8nq@ml^2^K( ptD4p&pX@k(ND~nw0Rfr&7y}cY`f6y(?*}FU22WQ%mvv4FO#s$F^FaUr diff --git a/app/src/main/res/drawable-xxhdpi/ic_share.png b/app/src/main/res/drawable-xxhdpi/ic_share.png deleted file mode 100644 index df3f943f175688e2f3187fbfb35bcde184dc2882..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1068 zcmV+{1k?M8P)<h;3K|Lk000e1NJLTq002k;002k`1^@s6RqeA!00006VoOIv0RI60 z0RN!9r;`8x1K~+TK~#90?b^+&RaF?r@n@;M7>Z#~Qey8#L<NBar75LhG-~1?$Qnqq zMg`KWpn>@(^fm~B8bw5unF<Nn3qsD!$cW0ouI5XLg4a)jeQt(a?pf!Yb@#g4&KJ() zu+Foe-;cBR^Q>p>h%sZvj2SbgtEAcqlmZ(fVq-+CiioAXua8B<o``rqrSw^?+^T}R z@s<93iMwj&+bUR#;~C~m@h2Xxop&qX&Ys{wIf~nA=Rd0;;p-vHnPN|E4YLZ?k6_Le zkK|ly-fWARC7x<4Mpq4but1E5au#*fpz907xFKgzR}GqM>q1>M=%)fPe#=?3pumM% z1D8j{^AS;^kNKiNjJX3I$AJRneV{Tw=fOSLRnQpNUR&45U@>09*}~>@d#j<@Mr^|2 z46)x}VgPd{u)4O!p}|V*%@BIHXJWz%e4g=}9k{u+#-YG6yp72|BF}1WyT#MQScf-p z5NCRyAMqB}*U&XGScsSLcOPTU;~gxoopWpSZjoOyZjJp|Q#;?*z`gRy_K}{6-R$<U zLG#==sHqMUnnvyotea+iZrPsf#l5bEu91;HB;TQ_FbU7dE8BaqvbM&dG5C;t0^eq= z`?qY@);KhVACk|+8EiF8+3plZACh0pRN2lNTFrTs8In(NKywOu>7eOQN97b=z-6`d z6bIiIFlb+G9m9~@gq0YQ-%=n(>*N~L-SRskxdvqoxcg9I(B3+^29-F=z8za|Wr0|8 z3uVjvA#Bv;u6a7-P3;C@pG#?sVRp6}=kYF9)Yex7tkIkb<dVBtJ&jkfsJ6zD!L8Vt zA$pi`$M4vT`L%V93?9=Awhp;4BtK~8f!Q{B=Um_6(Hgp{gXNl?d=5KtU+tW$pc%gH z&oF7SXXvupIkyhxX(owBGK~65b40YT%^c@Mv)21}Y>kLb(LbjjB4SHQ>4S@6EQ*LH zBVv6-TpJPRBI4I*UUS)=QaV~X@7BQs@+X(Oaewc3Yt4Mdb_%a(-Y@Dlz1!|tP08=a zq^8l#JxJJzCABpc0at0BIj1wl=duS^)YexF+<}h^oAgp`UB$r@nntt)CvbIbO~t_i zJcmCDnDlhcH9PfUKuYOcO6m28c&|XXRXK|~Wzc`PsX&aZca6GgP;2jZch#U0hX`3Q zx@yqw0x@>wESeL0u|dJoi1;}ohMhp3jEEakO2_*x?BqWvrF1MJwv7;CYmPac2J`XJ z5dF`Gy87PZpkN8M4`9wGE|tw{E}HIo3r@~p%n7_`h{J$RKBT7u*F?mIh*%vLn!u@n m*{8kd)|fG4#*7*BKjI&>einMmJ?p>#0000<MNUMnLSTYH9~MXe diff --git a/app/src/main/res/drawable-xxxhdpi/ic_arrow_drop_down.png b/app/src/main/res/drawable-xxxhdpi/ic_arrow_drop_down.png deleted file mode 100644 index fb2d3adc34fd1cab8df4697977713f566db6da9f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 451 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q4M;wBd$farfw9Ze#WAGf*4x|Of`=UhoE;Y% z`aR@mxZu;2sP{4J*9VRjyH4%@TDm`ey2)7%CJzQq1x6J{l?Ijx43ijy9Do9zV4()E z5J&)z8kPw_ZG_ZZIDC5j`AJLyE?+DB_O`IfH7IBuDE{SJ@_><JQS-+wHpkfI8qAbV zy|oo^nf=jZUnidpgQ>FD?R#tQXE5<Q_;y^{Rs8$<qXWzrPIg?{_kLQjb|d?O$pWdT z*WLEJ05ol0kH+n9cdDkDe_;5c;&OA><8S-9fcpNsOnLj8(ZpS3H=~Iw3%^6M%LfJ% zH*^NFzd03@Ie=jS3<*4*;#2^I7Y;Q-4&VTUstLI-{>S-jdRU*N8!&PhJYD@<);T3K F0RYq4iC_Q# diff --git a/app/src/main/res/drawable-xxxhdpi/ic_arrow_drop_up.png b/app/src/main/res/drawable-xxxhdpi/ic_arrow_drop_up.png deleted file mode 100644 index 18fd806f2ef4e916ab51370d6278173838d75baf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 432 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q4M;wBd$farfwA1v#WAGf*4x{LqK6#>oE;Z) z`aL#ixX>dl{2{mN_EnMj4fnQK+1-CVA<VdmLCAs0gTa%5Q-M*XL8XCZ0#E=f#Hj!l z0t!q53gJ@2r~=f6T}{@dpDEl8(?0x}r@)jU$?w82^`iqz09MAshJTIfa)LGjj9VDz zMYw!$V7cH{@krnxv!H|YqfSQ_pyu43bQ`4#1*R2@^EP%oXyjPnR&h+RiG5LpgY3s1 zkcy2BY7a8|IpjJXG58+2ECw{}D1+C5%X|}~`|-G+LO;U8icw|nTekC-XVX8V1_7gh Ofx*+&&t;ucLK6U~1$NW` diff --git a/app/src/main/res/drawable-xxxhdpi/ic_bookmark_false.png b/app/src/main/res/drawable-xxxhdpi/ic_bookmark_false.png deleted file mode 100644 index d65bb47d00bc840daf64d5d7ae0f6ba26138201a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 620 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>U^4b}aSW-r_4dw2Z>B(*1BIMj zF?W_62+iZ%r1^*WPImq~{tW)CEPV~<6`rs7U+}NEYTBMrkXLw8_3V{8cK;5Iz1Ht- z-|zh{yHBCy-rjQgAB_U~;&)7ow(P0kWMFVWMtzKLJW5}NN_kA~F%QV*y&khsG9fn0 zBbhtySAA>t{;=weTnaHC79Z9BSMI+{poB5T^2?{?S92L}Y^r&4M#^1On&F&m&Cknv zxeOI$5)Y2DHI%nA{xW0u@;pcBwSAwO+V%Cx%*;TKA;1Ca27d$($N~x|q6j>YJs^%Q zz=0z0fiHmvC?IjeA<!yJl+l2FgYI1~dHZ*gb^8MAnH>(Zg)RB3aLX{`p=tFiYX+Si zjZGygrA<HFPnTRN=Vmx^-yw3>gsOv&(*Jz9viB6jnfngDRUIFql{}S8-_Lr@P-s43 zI^WW=gm+I?Z>vhXm)<a`M6I;>sjTC*&}@yLECEyBDgWVKe6lUeH&mYClGXj4nr~Ol zYTQ}8axYuOWWOc7_VadY&Rvzw;IVUBiNad9ihr|qZDVz)N>+OrRnnvWoH4C;=8~nB z^X9O27^h8|cC4a^OQF{=xyr_paY6E#8B+dX%rhj6cO9Qx%5Yl7*y`A1Q-(+><IKM0 qXP8qe&nz*VXT<M-9EBiu%I5r10W%#})y?^!fbw+pb6Mw<&;$VSLE!QL diff --git a/app/src/main/res/drawable-xxxhdpi/ic_bookmark_true.png b/app/src/main/res/drawable-xxxhdpi/ic_bookmark_true.png deleted file mode 100644 index 59c96d068ac1436adf33580f7de6a63f5d1335b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 473 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>U|ito;uunK>+M}bKPE?swnV93 z^9#ZkA`+ga+VsR7bTYhhBs;@9JK3gjtL%cN%_lEOsCuPM|C>Jl(Oa{diSwRlPe1sf z&gjCwB2ESd4xn)i3JeS^3=Le&7T&$V`YT<t?tT>e8oAoIUx`^}soKiW2JioCU%e^+ zn$O7^Ap1k{!_oTp8#P;&G30UY`s4dpgJJo>^z_>@y-Ex*;uSw<=P5DRi1K`pVSKPQ zp`ntcq4FTZYYql(pzGn_3ts}zYB*@P$GC?X&SPL$P|hHa#ASFPdq5qTU&X$G35oCU zp5YpZ8(`+})wV11)t)@7ocGeAd)X>{W0&>SSG@OpwW^NI;aS?s?kfl7@6|`xTQg6{ zPb;(a7XBP!b70%dn_K664$(PKpO$vL=uB`RgJs&Xx0PB<3p!_JX3ukC-ePF%dp_8r zq4u1Q@MjUW1>VM!i|1MKUwAt6q@n-66Kj{m0A0hx-~bKG1!BLMtY$7`tSWGl0XfUl L)z4*}Q$iB}OaGl` diff --git a/app/src/main/res/drawable-xxxhdpi/ic_delete_accent.png b/app/src/main/res/drawable-xxxhdpi/ic_delete_accent.png deleted file mode 100644 index 3ececbea3be6052363cc8fc630488d016a3b3ba0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 357 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>VASz+aSW-r_4dv|-X;Tvw!l1# zPV+}yZx*;6V(3ep!}M6KiqX4CIwSM6bxnBEKX;wwVZXEEGxzo|Ff=eQ2rw`(F*q<V za5&s=TPA;<DI)(*ir_Yrx=9?-()N}u^)@A1HbAT3fCFeDL%_R*Ja7@JFmf0l%>DRd zy%57ZNoF2Zh8QC@i)jo69KDi#_Wz$PV`<o_=iCt7lbgi&#_4;{vHh*DCNb>eh<#M= z{`k|g>l@1=AFn&})5oG+?sR$_*Zf(BiyoM5{9aJGYIZRr*ue@63@kw3<}BxrD7%~? SkhI+&<Z4e>KbLh*2~7YLZeOVY diff --git a/app/src/main/res/drawable-xxxhdpi/ic_delete_white.png b/app/src/main/res/drawable-xxxhdpi/ic_delete_white.png deleted file mode 100644 index e7b2514da1696960c89b7e274e469b0f4b9ebcf3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 353 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>VASw*aSW-r_4dwL-X;Tvw#2+0 zJcX`h0m_#pmLJ&B8Mi|9An%qh&lM}zAFJu#IOkTYfYsaSf(#4-3=B*R4h#$&KqEMk zfBZFOx{?1UM=(mt-n-@6vGaTn<>jM(GXt%G14ae~28LI*QyAeQ)L=A-G2CPA|G$dy zL8QTf80G_86B>ef8IIowdhp|Qxm*@Q#B44Wi{&@eL=PyI>1X_jUbCL_LAOEbzw#|P z`~TQo)vLZUb>}?J={J(A&z^o5T6~Z1j^bB2J^#{TJqECYSr{6Co^2@m#jrL;=-j66 R)>9x?d%F6$taD0e0su-yVuAnw diff --git a/app/src/main/res/drawable-xxxhdpi/ic_file_upload.png b/app/src/main/res/drawable-xxxhdpi/ic_file_upload.png deleted file mode 100644 index 150624e5743d11215522b85b82c86e09e336fa3d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 317 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>U}W)haSW-r_4ejY-XjJAERL<~ z&QzW|IbHdT-PQvt7g7cHoU@$%RE>#&fsLVo5u{xL$b9hi-G7FbNA~5+CywU#8mQJq zw|IVxR`Th-&zG3=CyXQb@pi`<GW%H%efjZJ(CmnQ?*`Sn$QIv^-by*$@qCHNe}Xuo zA5V9@A+w+5(6=9jEFTYZJZcv_!mr#R?<Qd1qfjT|_{X5>M<P^0tL{Witz8Px(L?|P z1_mAm24;o>3=Ajimt0~;)&dqqQUGE)eErLyAGUb+>KXp$L25l+{an^LB{Ts5M=@Vu diff --git a/app/src/main/res/drawable-xxxhdpi/ic_format_quote_checked.png b/app/src/main/res/drawable-xxxhdpi/ic_format_quote_checked.png deleted file mode 100644 index 1a6cc0abf18cf9da4bcd1fe0617854aaadbce1ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 505 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q4M;wBd$farf$@N+i(^Q|t+%%wc^e!=oE@($ zV4ln2z<$nwIYl_CjPL!w%|2Dhk^Qw3?>!S_nZO|Az~sT?!N94&sKThy02G)67Gm%O z3jqc2sNqxqX={)xZ8g39mw}N*z=5X3g&o@*`|Eer`#C&cz`tQ<y`96g=a0W;vZvJA z#m!H1xTc;^JBu-Le#6&H)|6VOYs*C^eC3Rs?*^2}sFearEclwqoKkz}+Hzi?MD%<$ zphQ9KEQZMW2fk)90(D$p&I*)>ozDi8sHl|!N<8@L2{irCb#+;wMEv{|hil6dY9|4W zYWnI4w8QI~I?xWy$ockvt|?=N9XL3J96%wAGknq2*uG`UWj-K${pX1?V3aa=y85}S Ib4q9e0HNiJpa1{> diff --git a/app/src/main/res/drawable-xxxhdpi/ic_format_quote_unchecked.png b/app/src/main/res/drawable-xxxhdpi/ic_format_quote_unchecked.png deleted file mode 100644 index 8cb083658fb8367c6ab57d9668ac3bdaa7cac40c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 502 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q4M;wBd$farfpM>=i(^Q|t+%%~@-`TVI6Jx} zuY5E8Yyw+=N>0(y*ZU8hlszu-c*4DBf-DmlgdCVWm^>Ib6&O_*RT_W-lfXg@o?s!M z03J1*3LtF_a;2?XZ~tXrWD#(nDRE)fIoE#syZhA_?0msI=iPn&315F!)ZSu@oZo+a zx#WbeoDuWW9ImM+)J6e?CVb6gO{sOdwp<V>5jEcpD3MWniy?CUhOe2-DYb{LE$0ME z#LQO%N)*&a0VOVc&13}XxW1ebC=oZG4Jc7jdkJXNhp(ROKpofBfp%y{%ujK+wmhLW z2q-b>t0&M7uWQfw_kZO8g#<VNg&aU(3JgAQ;J^bA7NYpo`0r+{`_%C@n|am=V0<!o My85}Sb4q9e05$@VK>z>% diff --git a/app/src/main/res/drawable-xxxhdpi/ic_info.png b/app/src/main/res/drawable-xxxhdpi/ic_info.png deleted file mode 100644 index cb42f367549b9ffce0d1c1501ce7430c2bf41209..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1643 zcmV-x29)`UP)<h;3K|Lk000e1NJLTq003YB003YJ1^@s6;+S_h000IuNkl<Zc-rlq z+iTTF5XaL7ipi-*p(YxTVr*i)yePgEEPZLCc$ZKmMZtfdYDl6{tI$`az6GxdElSgn zzWR_>eG%y?eHFA#G!h#vQEQ_qX}xS`U=H*~X7+b>fBW0t?!x!wXwJ;eC%^s8&R$Zb zl&Xqyrx=6?AOeVr03v{>2p|H8iU9tj1)%ky1E4<870?aP1ZW!cf;3H^;lEu5_0rGa z&(4nk<a!;{3OWnArOdTq&>7G+P$2^Nr(UJs)Irei%6^*y4S?2>?O*{EK^>qw%3T`; zwS#7d1OSJC!=PVPcG^QwH>fu60Cs|YR@rT1ptd{$SPZ(P{Aoj=MR@_R8}vl^*M6fX z)>{BIpf3y!3j;JpZvm|YHPH80lWOR*RiLe)gY+|Z4cNz&c$RMfa02y1!VbR#T?Op{ zH5u@w8MF^{tpW(&f$Dt$uq0t>iCNJxLqVSj#&H^6bQ?|#-^x0G6`=c?9eYH>OPaZO zky7Eun!b*MmSq*d63yUa4W|e6hQrC=JkTi`_H-aLWeq@s=CJb<=$#DJWY&O2G>4=5 ztN^IdeBqwYT0xA2Ltwu~KT0ODBNL8)t}*1adr+hA(ioD?xdyOX=;$9*X7**FWIO0j zVc&MS0<c&(!^Pll@Nl(ilMuorsL=(0OTuBN)x+SIwL>@@4W$iWr||J?_c-`v?HBg7 zEiC{AVM+PCrGRkFhRv^pHLKb*02~tL`Gp(-C<@o8yKDm}Qt5yj_iawHTmV45D|jC~ zpp6CA0CWff&|`T_b_Jk{c2;n0uPp%8f^x&76lyyz0n`a9ske1@Tj&^HFX()C3R#Iu z0H~t^A6jex7!=g=X9oaaj^HWy(lh{kv2dHFj-`~By9R*zjPc>AG$oZ9Y!xgcHYxun zT~aL-{32{N3E(Va>}o*4FRR4F<fKUe+$3aAfB?9Z{H7@Y3j~i_Q-A=L3*u5|0sxnO zjs+O}vhFdlS!)8o0mjHczyP?^ywe1Lz6?yhvZ_y**qku|;0j}8OTYlQ^!!^B0B$fw zR;JwPEKJ18TFv-!-2{LM#z;fJ02VU7{9*#YG-ISDU;wp@FH<G}ykLw}2MnN^@#T30 zkOKg52%33=g7qONzJwjWgt;_yRZK(erlFS^BU=Loz)i%yF#({LF>)|q07n>KPUo>0 zmn8sSGrn}BQI5VFFaYjIR*MM$^97x54iLbKv=(Gg!;GPQ0RreuYe`bFCGT2*0KRAZ z=rIXkn_yc?b3g!=3H;b-5<r2b)ibr@0RcF{`0zwpqR}xrz!=5tdc^<$%vJo^xC_$n z(=ohG(D}mw0Qgkk!v{71;FjxA#xUN!FfYddFeRU4?Bgc3S8M=4wF?4pD#rkN1@=GI z`OYNA`5y{0qBS`L@Sec-gwi}4m&B27fg>Zz-dO<`0OkmWUs3JH1OQx!9uqjzpCbT+ z0=svTtPUo1s7=XQmrA!dW<!UBef==W_gCWBkiaQ?A8hwH_#Y|RRRtH5+Ni|2MM`$} z8eVv@$;05|mdj^?{$c9<rV9W%cSazD9iIK>KNI$?qMLS2ID1a$C_c*jJsI<*7dBNq z=P}_hUfWet^46~$-d4_}nu8ksz!LmxSpa~lS9*VNVZ`!eEy*NnRKx#aQzaLZoxpQq z;~JfKNeex74g-(1oj#@4@T#6hQ$E;Os2JDm5N1+GX$VLw@N=oEIjQL@Za`RS(ia<@ z!zbak(r*X?PoTeTc_r&ag20!Dokr6>*?hE1DtRkWU1hnU-3y(9HC*n6Yo*L?^D&<# zEZ=hN9%UzZAP%<z;(pA9RFf)SUtgflR@47ELYt=U8?b-UM7HAsKv}yIKJu>HW0k_6 zGfC^E*C?zVWu;xLq`Z(t0DrHdj%7ITqe-ipz5pn%Ctyk9L52c9K`;HZPy0CiLvDBp z)ZT<CtEqO2)^MHO=AMNz0PeQHUBr0J*V7b&j(d7=-_H9wyBG2d;NQd3W=j2jG#GR| zW`%n-H@X;Rd;;))MZUE(k;1wW-o1e5uJG_1Zk2panxfC}-|$$_X&Td89M_t>2atQk pAVdHWKvV<}0YpUr5kQm!{RPu1rx<U;Zwdea002ovPDHLkV1gMv@-P4Z diff --git a/app/src/main/res/drawable-xxxhdpi/ic_insert_drive_file.png b/app/src/main/res/drawable-xxxhdpi/ic_insert_drive_file.png deleted file mode 100644 index 1156337394957ee2a73e958fe518487bc5ba7628..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 475 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>U|i(s;uunK>+M}%FJ?!9hKp}R z)+;ey<US{QWPwtZ=-mn?amKx^yMNsFJFtd#NpiUV-lqK9-Bkw00v_kRG>x~O7Ghu! zU|?Wka1ds+klZa*Emy7mHvI%sfkm0|x7bH#4N4onev<ckBe{&HAoACY#4d*8j`G&A z3Rf(i?D=ATcnZTjCcW*_EmG}!*qCR0Z3%chA=IHEPasR?lbFZ??v|CzE$$~61f&$X z9U@wM7!(CJF}66L;1J+a)OL^n=_=<EU{bVpC}v^k6=X1RW4Iu}=#UKNyy?3j^B{Q< z!)+yo8_EaFI2gY1d=O`9n0Js7=y?W)hS*;$U<QP6uxijp;xa5@{s9Uk7ywE$!Pw~Z zli&9*{GSub(lGr9!)XqN>z#~xN(^(<V*mYGexs75p>#VZqnK$~IQN5$H-;BKy+6*U z#F!)SPROQAZ0odm>4eKS-*;P{D&1ykXF7eq{+-IVwL3#@_TFM(VQ2sbZ9~mphWK^9 U)!DyQcY!SSboFyt=akR{0PmHVSO5S3 diff --git a/app/src/main/res/drawable-xxxhdpi/ic_more_vert.png b/app/src/main/res/drawable-xxxhdpi/ic_more_vert.png deleted file mode 100644 index 27779e7a79b2714ea63c75d27ac3d1e4e5420a8b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 406 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>V2t&2aSW-r_4bzIxq}W2Z4cjF zNnBDGwj|b~yTf^c73b`}$TLAJ{8~NddER6GGtb`i$0`A*rT3q@GB7wWFmM13U{GLS zU}0!rU=V0nzBW1bjnwYtzapfw8EV$2=E%p*SA2Md;aUAh|HMC*)0zUf4%pSyMKOG~ z{k(k6!j|tXLJYeM{=Q*&Qht_U2g8Z?^B4=585UGD*fBrgQP^+BoWQKGUoBR1d5m*7 zLtVM(-Cqi3@uk1265m)J5o37f{^FiZU)z`Y`!$}v*ZTPSg<9>Qy-Tv6>E10fQ?>d0 zSAiMs!rclCWsYTz3~!p=G%?&@y~)aG;LXTzK<|VeM?>s{SOJFJ3ScEna8D(Or(nWq pNz<4>nlPaUdRQ<pFny@EW%$SX$@A&SwaN@Y;OXk;vd$@?2>?)Ak@o-q diff --git a/app/src/main/res/drawable-xxxhdpi/ic_send.png b/app/src/main/res/drawable-xxxhdpi/ic_send.png deleted file mode 100644 index ca6a867c3e419748826014293e63d0906bb973cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 729 zcmV;~0w(>5P)<h;3K|Lk000e1NJLTq003YB003YJ1^@s6;+S_h0007@Nkl<Zc-rlq zJyH}w97hRIVj|HHtM&p~qQ-gzNkq-?2%3o>fgS;3T_`w$h7bsP1W6SGh*?qmQRP;R zeAO(ov;U8N!ONxy=5@badU|@tI^Cr)u!Ea`00aO65C8~303ZMXfB*!5GXWdoiJ0Jq z*$CJdhvKJrBd&4dYy|Y_i4}2|8)ze-$`|s~zJT620{ZNT*W}4g0C{pEpvsnbOrGon zkf$LD_|;HAHBZar$xZ-yawLE}4Itp4MFGe2bO!-80#3`*Wdzs==<`Fo5?2vmBcO;p z)w$@mv4AR@;!&nNMH7%NPf-O_^VE%;r#ct?aV#Kwo-zptnWu~bLggv5fDn1AbJ1ZU zj`H-<Q=Uo_a6C`95m0!Z5O6Y2QwS(1PY5v1Q=N+@#SQU5JQIuJqxjbH)3PG+)btOG zi)nFB%!{{T_1})U-K2T?Fw8u)-MGxN=d+k=nkUQez*%Nbqda+DsERgw`gxiu;SCw@ zv!`~RvOetgGJC#@h4b=M;$|p|*|UFEo=O#PUECK>#XGSkzKXpT1-uuxN=nd8F)N;n zCGkmY8zkt3xRUWhc+{hK&=28<;!^alp&mwY<IH&eN6hmm9@;k@>!pZDqxd43F<pwt zGKvSy%uHv*%h6d!@klbm0~zBLPXvr$Q4Il(GlKx*%pkxxGYI(q>D5BCt%+GS=bB}v z<n8H0-NAr>pgW*TdPT`)X0pGe=RPx8UsDZ}nQSj=hs#V;0UnMj=tj;=Q~_x+6HUNY zC)s%r5d@^pOj7}EA6b_EOdyW}ipq=^0pU+Ju@cZDGjWeDCNl<ycQ2C}o8#-rjKL2$ za0Ic@PneJy0|6XEZzN!y%-9M51RwwqfB--M0ssLB00bZa5RikvkljK~a}W+A00000 LNkvXXu0mjf&W$_e diff --git a/app/src/main/res/drawable-xxxhdpi/ic_share.png b/app/src/main/res/drawable-xxxhdpi/ic_share.png deleted file mode 100644 index 43c930ebf7d881f47bc1d4babe918792ea7b29e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1404 zcmV-?1%vvDP)<h;3K|Lk000e1NJLTq003YB003YJ1^@s6;+S_h00006VoOIv0RI60 z0RN!9r;`8x1u;oPK~#90?VVkSRaF$n*KthBbjm(V%`wv&!yb|zDu{?6KN^x4dWc?n z2o&leiI84;umUmcp`QAnr#>JmaA?XBUz8&3B`BD|)R_oH%dw%T{Fv^&zaI7()ZyyA zYu~fa-skT9d)2+pUTfX6&)IAJ_Zg8yB9TZW5{X125gVEB34{c&SVRUz<S`NH6OkM9 zf0_`HqardSB12i0o$xcmE(N$9_ynlantJ|!Z}UCxt^jx(_@|A)&*X1l(D(c+4e$cc zun7J%4d8j-epC|R$qs{mVG^G3?N6lumSUEWqWB9~Vl$UnMLSm!c8JKl0`2vR$ab57 z(Y=NO%SB{NivRJ|Mda2j%Z_RW#drq{iW|Rsa@#6mOu%}Fwl`=8#F&7U4sEZ{4u~-U ziyYckzX`>dfZ4t$a3L`!;CF|%k820Sn1DkLZI5dQM3VquHLzDi);he*utVF`1egoF z44f{o^w5kN(C6FVU;t(Tn}HLK13%4MzI_e`U=6Upq`*T5#kj5lScd6V6;Wnxmm1*m zxe`9WY+ws8sSMsJ+G|5ziqwz+)&e8Sz?}nj0=>Y7JP}&rZb<?wfgy{)eF^l>u(b$y z6FAex_$lBW;AUUGdj*&WYzNLN1Ah=0XkmLHun8Cj4(Hc63ycAKfM+n$mG}U9Fzfsu z%D|rlo&uuTbQTWq0Puq{@c&_!l?A@%Us-_V`EsD;E8q^_^RFzxRlqjjUuEFOfsMZB z?+suv@GRzmH402%*5DD~bIb#7VGA1rz|YFSpTRtsi&Q#P2cQpl7qjlR6RbCYn`YQp zg?UBPvI|hR0=ow6wUraVddy~MCuVb`VFY;CxBp(Db8TfE{VsG8cn%1vwOBe7r>$(4 zbHEPZTHn5VhvK!Bt=JE&@$Gjo03VhV_)%hC=VyZ19CcE{ZHLpCeZXAb{<_BILFP(Z zDI(Gkk@rMoTRMkz34pI1{_^+u_OEPge#tI3J<%O}vq^x<dbms7W{}t<Ai6^xF0n~~ zTK}lvH;1-^#3li1{iA{-4s8dCO#;3sd=}?f2kZq_JG@4<p}dXQD@3pnvjS85FN0H< zMtqNNpM!$(i*erocl-7`C@{^GT8T+$V053i`1U;*@Y9g_Gr#T?zWomZifKu{j*<Ln zXsL9I28wIS?^Y%OOe24lFW-ZLi)AU}oYz(!rhQq;qrf3$5~eVB(KTiH+SOq6{+lt& zl!i&*MPQC^AG!kII*h(k`?hruc*OVoy9Vsfd<_FGzYP%=z((K~WfG<^cTunJ`8T6- zwf#JhFNw$&5z(ymzlzA#EXzJ^VgGs&StlZQipVlCF*+vZg#GR;%UpiypgI8k*l9`k z0e3aAcRxnfe!1sOJs<y|51)esJ2iC;cpJC@bL8nGZ5Dygfcd`t4+3BguoZJ)TEir8 z#3K09{79^a^_l@J!0xrR6GllJz>5Ly0S=Uygb#fC93<Giw%U?3tjz%C1FxY!0HS4| zZ(oB3)5UuqcV`+Jz*66S1`qJ6qXYmvt({Mdr^l~$Xj`pqjWGe~yP=+`Ikc^=t;LuC zm)h22+5s^pU@Rotl`BVg3PucYT-^NqfF)U$ozx79?heT7`QJG({jE0m(E{8@u^X}m zaIbH_Dh2RyfeA>(I4ziO5`AAl@DBi2`u3-iVCq9ZbrAg2km(eRHg%Up@KZ~&NPveh z+M~;z{wcgEAKgBn6_|a(fQa;q$aHx*$x;%DL?V$$Boc{4Vf+tt##j;dq>Z`&0000< KMNUMnLSTYPnwJ>> diff --git a/app/src/main/res/drawable/ic_arrow_drop_down_accent_24dp.xml b/app/src/main/res/drawable/ic_arrow_drop_down_accent_24dp.xml new file mode 100644 index 00000000..f100d7d9 --- /dev/null +++ b/app/src/main/res/drawable/ic_arrow_drop_down_accent_24dp.xml @@ -0,0 +1,5 @@ +<vector android:height="24dp" android:tint="@color/accent" + android:viewportHeight="24.0" android:viewportWidth="24.0" + android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android"> + <path android:fillColor="#FF000000" android:pathData="M7,10l5,5 5,-5z"/> +</vector> diff --git a/app/src/main/res/drawable/ic_arrow_drop_up_accent_24dp.xml b/app/src/main/res/drawable/ic_arrow_drop_up_accent_24dp.xml new file mode 100644 index 00000000..ff9c29f4 --- /dev/null +++ b/app/src/main/res/drawable/ic_arrow_drop_up_accent_24dp.xml @@ -0,0 +1,5 @@ +<vector android:height="24dp" android:tint="@color/accent" + android:viewportHeight="24.0" android:viewportWidth="24.0" + android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android"> + <path android:fillColor="#FF000000" android:pathData="M7,14l5,-5 5,5z"/> +</vector> diff --git a/app/src/main/res/drawable/ic_bookmark_false_accent_24dp.xml b/app/src/main/res/drawable/ic_bookmark_false_accent_24dp.xml new file mode 100644 index 00000000..c5178cf2 --- /dev/null +++ b/app/src/main/res/drawable/ic_bookmark_false_accent_24dp.xml @@ -0,0 +1,5 @@ +<vector android:height="24dp" android:tint="@color/accent" + android:viewportHeight="24.0" android:viewportWidth="24.0" + android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android"> + <path android:fillColor="#FF000000" android:pathData="M17,3L7,3c-1.1,0 -1.99,0.9 -1.99,2L5,21l7,-3 7,3L19,5c0,-1.1 -0.9,-2 -2,-2zM17,18l-5,-2.18L7,18L7,5h10v13z"/> +</vector> diff --git a/app/src/main/res/drawable/ic_bookmark_true_accent_24dp.xml b/app/src/main/res/drawable/ic_bookmark_true_accent_24dp.xml new file mode 100644 index 00000000..a1a12213 --- /dev/null +++ b/app/src/main/res/drawable/ic_bookmark_true_accent_24dp.xml @@ -0,0 +1,5 @@ +<vector android:height="24dp" android:tint="@color/accent" + android:viewportHeight="24.0" android:viewportWidth="24.0" + android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android"> + <path android:fillColor="#FF000000" android:pathData="M17,3H7c-1.1,0 -1.99,0.9 -1.99,2L5,21l7,-3 7,3V5c0,-1.1 -0.9,-2 -2,-2z"/> +</vector> diff --git a/app/src/main/res/drawable/ic_default_user_thumbnail.png b/app/src/main/res/drawable/ic_default_user_thumbnail.png deleted file mode 100644 index 0803edc660c28310bf7d94969c7227a46f86393b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2115 zcmV-J2)y@+P)<h;3K|Lk000e1NJLTq004LZ004Lh1^@s6Ib=4{00006VoOIv00000 z008+zyMF)x010qNS#tmY07w7;07w8v$!k6U000Sga6xAP004LZ004LZ6-B{Y000Nh zNkl<Zc-rlqTZola6vuxvUdoio8Fe&oQ))Ryq7YO{SSAS-sZeQ=h4df<Mh{w$kD;KY z4*AfN&5QI@2o>2wW~HDQ1U;C|XgG#>t-Lj(&c&G?)}CP;9Q`hP@3p^k_74_w81(G* zU+a8xzHjff_ku_y5{X12kw_#Gi9{liNTdi<Xggq$8ek?+4?JLAPXI;&qkwAj8lVlh z0JIuA0~`UGfhP0wg0>(V6gj~YfrY>VWA|Eq|6{-pz#jASw6@@KpdMI{TxC6;?Kj{9 zV1{-ON{t#|HE<CBNgd4g18*7MA{m(sYy+;KpU}aq71#pYqaCawF&)?rw4<NEq;?JX z1pD^^B}Em`0Cb|Cu&mY&Y(nnZBmGzooI*cAw(L*fMeU%5z*Jy2`U!DmyMRgBLDpg^ za31|6xVCe^v)aM-$uM9m&}}h@p<6ew5g4i+eAkQz4k!j%+x7xuw3Fb9X~59{f~;-7 z19jTTu+1D~E>}Caq1a!*!`ex)#eCpW06`7S&I6BWCnqnnfQw22>;m=yYk|2yEil|z zt@+(r^KZJ8e7tC4R7hq3XBC2W1^Cb;F)6j?|7gs6pFrl_3&l8eZm2#-CQq_5)x3vq zzmJ-j6@uZ&a+=QoT?f`-r+}ftyw`Ql8un3;=j5%P1JeyGbD(1x{wHHLD&;IOOB8~# z&Y_-lp0#uX&w0*SV(RcexBLZe>&hz37(O-q4NUQxxrF#$6}svv5L3)pKDB-8DQAg! z#d839kcD+$Y*Nq{%zAPaaMH8*E@a`t7vu3i8FGR^DnlAP3-3W5DSWd}LFY#bI&WY) zIyF>l6tu2U(Afdpm&fVKoTA@H=i&T7nT$CMcu!$mK<+NJN?SFi^~Nb_y+)3@t~^)p zyU4Vp2A9fYOn^I(RWGlML3hW2#s_P-qTV(#Zj;G+1-}Z6PzZ7_cbCbSz1)S&HKZnM zf?rn@3vhp#jM<+|G0&3Vdf-uIv2)90%>F!%Y-~?OmIP~Gy&y&N<uK+z-taMq#^&pR zRt{5@H?za8g-!}UWUrO_V#8oI(WTH80SN51QeG~+mA#h6`Ly4`PkRVxQtm_+I$SUK zH<+<P!D$X!(EkJvv{EYBNn$Oo#MT5L?q*g>MR!T9+C_rr1t4rND}}PzH0I=)d}RQ_ zZf8X;d{1jDlL|_6lQlC(;C%5C@|>P^>q?V(kI-?Fi=F6ya?@B5HlJm+ok^3HrWzy7 z6%hhMfG3QV8i{j}=1+8$wyH=UiE|MXTuhuKIEWhE2#_KdX`UO~(W}9V+(-vft94uQ zmd!>2CryI?({?t}N8((hNpP#Ssz@J+bCD*&m$g+z`beCMG!q>~OYl`>>hUacT+t=- z6JRt_20I!l$EioR3^*-L5`0cu)h+l3_zCIja2Po*@Hn#EmxM~>wDt#qhmZrxo&?5f z3mb&Qxk!`XW^GmdXa&9leneW{975)3v(k;U(K!ZuV}4hG95=WCcnWxiaOMJ><YFcI ziwC=qnk0=tk1}KLLVs~$r3-;t3;suecL-~-qt^JOb$aeR7ovQZ>>L7KChW<WO5<bi zSA;Kf)~~6>gY##AHwinj1F1AVpYaf%7MDUA9XtOS#qK6nV>GyoQKL%%t_t5ffK^&q zalk60$wjPIxOCjb)|ED3kzz7jvB+q%9WUo?dTee!>jD<*<-j?MvHM8X<iqI=79HNK z7J7edwivGsJ{+#M<m^d`HUFEH5!gEku-=!`HhTH4*NV6T>n+6VV3vWiK5Oo<Ao?q7 z;R_!dT5ZHUF*c4-a<YLcP^xpr>IxY<re(c?|3#WO=V7VE0ESLpt=o~9dnNBthHb!X z-%cwqn|#m1?I@lAzdeWJJ;=IdDHqgN8I5^jl=m-XE^Hhp{3WuFsMHu@wB?CSr-`vD z4LL>hAQSYZl;k1US#)U776SH;^l!xNfhxYJz|N}MNdo%%velI1Qwq}kYY>JS4K`wt z>F`mP*lMe@hj6PIZ^c;SyNwv^))sR!>af=ss|9H)T@>bEuiE820e1*rg1w`M+JLtS zyL6}0_-Je0x7)-pXlys9{FyK(L}nY`Y--)AEh-5v+RJtVTL|O3d93lpb~~Z{6lnjo zs|L|+z{lu(N7b3JU6kPzszG!wE?c~JAj@ZqklsSB7-q)Ufx9BQvnE!BWEQfc&qZMR z-*q+u&tqpx%P8|+jks@@d(p(m89ru?<^x~jXI7>g_yhPA_yyT<aKYF`ZrnaP8d;~U zMmCu}f;{fbz|WogW#9#1uZOXmGY2@0+pD2ScA8>6=O<zsdYiREvZE#zCCPZC$)k3V zwd??Xn~A6}40)gr^{{Oh)@?MqyyFj!rMSOK4Z+S+UiD`;Fco{NP$AlG@*PlKGAsv9 zp`Q?2cFJgq^rH$XQPF4_Z_7H3hF~f&LS#BpNvPFbJd3p(pVbTGio|4K8@i3CZ)aDG zkCU~7Rb*;_)!5naX3Gv5pNf3kM3B@YJM}a=pf;JYy=~#NL6OT;CjtwRljs&8M-kfO zIC6^K55V`xopIqPa)Jj^gY*-sM>=KC1SS9@ktM)t^BQE){sM9&VjFV&Q8RD^xl)^v t35rN05{X12kw_#Gi9{liNF?Hg{{h$qdoC<e<f{Mx002ovPDHLkV1m1-)4l)z diff --git a/app/src/main/res/drawable/ic_default_user_thumbnail_white_24dp.xml b/app/src/main/res/drawable/ic_default_user_thumbnail_white_24dp.xml new file mode 100644 index 00000000..d7366bda --- /dev/null +++ b/app/src/main/res/drawable/ic_default_user_thumbnail_white_24dp.xml @@ -0,0 +1,5 @@ +<vector android:height="24dp" android:tint="#FFFFFF" + android:viewportHeight="24.0" android:viewportWidth="24.0" + android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android"> + <path android:fillColor="#FF000000" android:pathData="M12,12c2.21,0 4,-1.79 4,-4s-1.79,-4 -4,-4 -4,1.79 -4,4 1.79,4 4,4zM12,14c-2.67,0 -8,1.34 -8,4v2h16v-2c0,-2.66 -5.33,-4 -8,-4z"/> +</vector> diff --git a/app/src/main/res/drawable/ic_delete_accent_24dp.xml b/app/src/main/res/drawable/ic_delete_accent_24dp.xml new file mode 100644 index 00000000..cda3e2fb --- /dev/null +++ b/app/src/main/res/drawable/ic_delete_accent_24dp.xml @@ -0,0 +1,5 @@ +<vector android:height="24dp" android:tint="@color/accent" + android:viewportHeight="24.0" android:viewportWidth="24.0" + android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android"> + <path android:fillColor="#FF000000" android:pathData="M6,19c0,1.1 0.9,2 2,2h8c1.1,0 2,-0.9 2,-2V7H6v12zM19,4h-3.5l-1,-1h-5l-1,1H5v2h14V4z"/> +</vector> diff --git a/app/src/main/res/drawable/ic_delete_white_24dp.xml b/app/src/main/res/drawable/ic_delete_white_24dp.xml new file mode 100644 index 00000000..8bed121a --- /dev/null +++ b/app/src/main/res/drawable/ic_delete_white_24dp.xml @@ -0,0 +1,5 @@ +<vector android:height="24dp" android:tint="#FFFFFF" + android:viewportHeight="24.0" android:viewportWidth="24.0" + android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android"> + <path android:fillColor="#FF000000" android:pathData="M6,19c0,1.1 0.9,2 2,2h8c1.1,0 2,-0.9 2,-2V7H6v12zM19,4h-3.5l-1,-1h-5l-1,1H5v2h14V4z"/> +</vector> diff --git a/app/src/main/res/drawable/ic_file_upload.xml b/app/src/main/res/drawable/ic_file_upload.xml deleted file mode 100644 index 74f3b4ca..00000000 --- a/app/src/main/res/drawable/ic_file_upload.xml +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<vector - xmlns:android="http://schemas.android.com/apk/res/android" - android:width="24dp" - android:height="24dp" - android:viewportHeight="24.0" - android:viewportWidth="24.0"> - <path - android:fillColor="#FFFFFF" - android:pathData="M9,16h6v-6h4l-7,-7 -7,7h4zM5,18h14v2L5,20z"/> -</vector> diff --git a/app/src/main/res/drawable/ic_file_upload_white_24dp.xml b/app/src/main/res/drawable/ic_file_upload_white_24dp.xml new file mode 100644 index 00000000..70e55133 --- /dev/null +++ b/app/src/main/res/drawable/ic_file_upload_white_24dp.xml @@ -0,0 +1,5 @@ +<vector android:height="24dp" android:tint="#FFFFFF" + android:viewportHeight="24.0" android:viewportWidth="24.0" + android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android"> + <path android:fillColor="#FF000000" android:pathData="M9,16h6v-6h4l-7,-7 -7,7h4zM5,18h14v2L5,20z"/> +</vector> diff --git a/app/src/main/res/drawable/ic_format_quote_checked_accent_24dp.xml b/app/src/main/res/drawable/ic_format_quote_checked_accent_24dp.xml new file mode 100644 index 00000000..1207e178 --- /dev/null +++ b/app/src/main/res/drawable/ic_format_quote_checked_accent_24dp.xml @@ -0,0 +1,5 @@ +<vector android:height="24dp" android:tint="@color/accent" + android:viewportHeight="24.0" android:viewportWidth="24.0" + android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android"> + <path android:fillColor="#FF000000" android:pathData="M6,17h3l2,-4L11,7L5,7v6h3zM14,17h3l2,-4L19,7h-6v6h3z"/> +</vector> diff --git a/app/src/main/res/drawable/ic_format_quote_unchecked_grey_24dp.xml b/app/src/main/res/drawable/ic_format_quote_unchecked_grey_24dp.xml new file mode 100644 index 00000000..cd548072 --- /dev/null +++ b/app/src/main/res/drawable/ic_format_quote_unchecked_grey_24dp.xml @@ -0,0 +1,5 @@ +<vector android:height="24dp" android:tint="#4B4B4B" + android:viewportHeight="24.0" android:viewportWidth="24.0" + android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android"> + <path android:fillColor="#FF000000" android:pathData="M6,17h3l2,-4L11,7L5,7v6h3zM14,17h3l2,-4L19,7h-6v6h3z"/> +</vector> diff --git a/app/src/main/res/drawable/ic_info_outline_white_24dp.xml b/app/src/main/res/drawable/ic_info_outline_white_24dp.xml new file mode 100644 index 00000000..af0d4d06 --- /dev/null +++ b/app/src/main/res/drawable/ic_info_outline_white_24dp.xml @@ -0,0 +1,5 @@ +<vector android:height="24dp" android:tint="#FFFFFF" + android:viewportHeight="24.0" android:viewportWidth="24.0" + android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android"> + <path android:fillColor="#FF000000" android:pathData="M11,17h2v-6h-2v6zM12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM12,20c-4.41,0 -8,-3.59 -8,-8s3.59,-8 8,-8 8,3.59 8,8 -3.59,8 -8,8zM11,9h2L13,7h-2v2z"/> +</vector> diff --git a/app/src/main/res/drawable/ic_insert_drive_file_white_24dp.xml b/app/src/main/res/drawable/ic_insert_drive_file_white_24dp.xml new file mode 100644 index 00000000..a431a5e9 --- /dev/null +++ b/app/src/main/res/drawable/ic_insert_drive_file_white_24dp.xml @@ -0,0 +1,5 @@ +<vector android:height="24dp" android:tint="#FFFFFF" + android:viewportHeight="24.0" android:viewportWidth="24.0" + android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android"> + <path android:fillColor="#FF000000" android:pathData="M6,2c-1.1,0 -1.99,0.9 -1.99,2L4,20c0,1.1 0.89,2 1.99,2L18,22c1.1,0 2,-0.9 2,-2L20,8l-6,-6L6,2zM13,9L13,3.5L18.5,9L13,9z"/> +</vector> diff --git a/app/src/main/res/drawable/ic_more_vert_white_24dp.xml b/app/src/main/res/drawable/ic_more_vert_white_24dp.xml new file mode 100644 index 00000000..c097d3e4 --- /dev/null +++ b/app/src/main/res/drawable/ic_more_vert_white_24dp.xml @@ -0,0 +1,5 @@ +<vector android:height="24dp" android:tint="#FFFFFF" + android:viewportHeight="24.0" android:viewportWidth="24.0" + android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android"> + <path android:fillColor="#FF000000" android:pathData="M12,8c1.1,0 2,-0.9 2,-2s-0.9,-2 -2,-2 -2,0.9 -2,2 0.9,2 2,2zM12,10c-1.1,0 -2,0.9 -2,2s0.9,2 2,2 2,-0.9 2,-2 -0.9,-2 -2,-2zM12,16c-1.1,0 -2,0.9 -2,2s0.9,2 2,2 2,-0.9 2,-2 -0.9,-2 -2,-2z"/> +</vector> diff --git a/app/src/main/res/drawable/ic_send_accent_24dp.xml b/app/src/main/res/drawable/ic_send_accent_24dp.xml new file mode 100644 index 00000000..4d65d14e --- /dev/null +++ b/app/src/main/res/drawable/ic_send_accent_24dp.xml @@ -0,0 +1,5 @@ +<vector android:height="24dp" android:tint="@color/accent" + android:viewportHeight="24.0" android:viewportWidth="24.0" + android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android"> + <path android:fillColor="#FF000000" android:pathData="M2.01,21L23,12 2.01,3 2,10l15,2 -15,2z"/> +</vector> diff --git a/app/src/main/res/drawable/ic_share_white_24dp.xml b/app/src/main/res/drawable/ic_share_white_24dp.xml new file mode 100644 index 00000000..045bbc0c --- /dev/null +++ b/app/src/main/res/drawable/ic_share_white_24dp.xml @@ -0,0 +1,5 @@ +<vector android:height="24dp" android:tint="#FFFFFF" + android:viewportHeight="24.0" android:viewportWidth="24.0" + android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android"> + <path android:fillColor="#FF000000" android:pathData="M18,16.08c-0.76,0 -1.44,0.3 -1.96,0.77L8.91,12.7c0.05,-0.23 0.09,-0.46 0.09,-0.7s-0.04,-0.47 -0.09,-0.7l7.05,-4.11c0.54,0.5 1.25,0.81 2.04,0.81 1.66,0 3,-1.34 3,-3s-1.34,-3 -3,-3 -3,1.34 -3,3c0,0.24 0.04,0.47 0.09,0.7L8.04,9.81C7.5,9.31 6.79,9 6,9c-1.66,0 -3,1.34 -3,3s1.34,3 3,3c0.79,0 1.5,-0.31 2.04,-0.81l7.12,4.16c-0.05,0.21 -0.08,0.43 -0.08,0.65 0,1.61 1.31,2.92 2.92,2.92 1.61,0 2.92,-1.31 2.92,-2.92s-1.31,-2.92 -2.92,-2.92z"/> +</vector> diff --git a/app/src/main/res/layout-v21/activity_profile.xml b/app/src/main/res/layout-v21/activity_profile.xml index 21a187bd..22f819cc 100644 --- a/app/src/main/res/layout-v21/activity_profile.xml +++ b/app/src/main/res/layout-v21/activity_profile.xml @@ -41,7 +41,7 @@ android:adjustViewBounds="true" android:contentDescription="@string/post_thumbnail" android:fitsSystemWindows="true" - android:src="@drawable/ic_default_user_thumbnail" + app:srcCompat="@drawable/ic_default_user_thumbnail_white_24dp" android:transitionName="user_thumbnail" app:layout_collapseMode="parallax"/> diff --git a/app/src/main/res/layout-v21/activity_topic_post_row.xml b/app/src/main/res/layout-v21/activity_topic_post_row.xml index bbce806e..e4363a19 100644 --- a/app/src/main/res/layout-v21/activity_topic_post_row.xml +++ b/app/src/main/res/layout-v21/activity_topic_post_row.xml @@ -1,5 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="wrap_content" @@ -59,7 +60,7 @@ android:contentDescription="@string/post_thumbnail" android:maxHeight="@dimen/thumbnail_size" android:maxWidth="@dimen/thumbnail_size" - android:src="@drawable/ic_default_user_thumbnail" + app:srcCompat="@drawable/ic_default_user_thumbnail_white_24dp" android:transitionName="user_thumbnail" /> </FrameLayout> @@ -94,7 +95,7 @@ android:clickable="true" android:contentDescription="@string/post_quote_button" android:focusable="true" - android:src="@drawable/ic_format_quote_unchecked" /> + app:srcCompat="@drawable/ic_format_quote_unchecked_grey_24dp" /> <!--<ImageButton android:id="@+id/post_share_button" android:layout_width="@dimen/post_image_button" @@ -116,7 +117,7 @@ android:clickable="true" android:contentDescription="@string/post_overflow_menu_button" android:focusable="true" - android:src="@drawable/ic_more_vert" /> + app:srcCompat="@drawable/ic_more_vert_white_24dp" /> </LinearLayout> <LinearLayout diff --git a/app/src/main/res/layout/activity_board.xml b/app/src/main/res/layout/activity_board.xml index 5d3d7a3d..517c48a3 100644 --- a/app/src/main/res/layout/activity_board.xml +++ b/app/src/main/res/layout/activity_board.xml @@ -31,7 +31,7 @@ android:layout_marginEnd="4dp" android:background="@null" android:contentDescription="@string/bookmark" - android:src="@drawable/ic_bookmark_false"/> + app:srcCompat="@drawable/ic_bookmark_false_accent_24dp"/> </android.support.v7.widget.Toolbar> </android.support.design.widget.AppBarLayout> diff --git a/app/src/main/res/layout/activity_board_sub_board.xml b/app/src/main/res/layout/activity_board_sub_board.xml index 6362e043..eadcd8b4 100644 --- a/app/src/main/res/layout/activity_board_sub_board.xml +++ b/app/src/main/res/layout/activity_board_sub_board.xml @@ -1,5 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/card_background" @@ -40,7 +41,7 @@ android:layout_height="wrap_content" android:background="@null" android:contentDescription="@string/child_board_button" - android:src="@drawable/ic_arrow_drop_down" /> + app:srcCompat="@drawable/ic_arrow_drop_down_accent_24dp" /> </LinearLayout> <LinearLayout diff --git a/app/src/main/res/layout/activity_board_topic.xml b/app/src/main/res/layout/activity_board_topic.xml index 2ea99c95..4888f6aa 100644 --- a/app/src/main/res/layout/activity_board_topic.xml +++ b/app/src/main/res/layout/activity_board_topic.xml @@ -1,5 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/topic_row_linear" android:layout_width="match_parent" @@ -47,7 +48,7 @@ android:layout_height="wrap_content" android:background="@null" android:contentDescription="@string/child_board_button" - android:src="@drawable/ic_arrow_drop_down" /> + app:srcCompat="@drawable/ic_arrow_drop_down_accent_24dp" /> </LinearLayout> <LinearLayout diff --git a/app/src/main/res/layout/activity_downloads.xml b/app/src/main/res/layout/activity_downloads.xml index f8fb406d..85fbe0ea 100644 --- a/app/src/main/res/layout/activity_downloads.xml +++ b/app/src/main/res/layout/activity_downloads.xml @@ -56,7 +56,7 @@ android:layout_marginBottom="@dimen/fab_margins" android:layout_marginEnd="@dimen/fab_margins" app:layout_behavior="gr.thmmy.mthmmy.utils.ScrollAwareFABBehavior" - app:srcCompat="@drawable/ic_file_upload"/> + app:srcCompat="@drawable/ic_file_upload_white_24dp"/> </android.support.design.widget.CoordinatorLayout> diff --git a/app/src/main/res/layout/activity_downloads_row.xml b/app/src/main/res/layout/activity_downloads_row.xml index d6c664c9..53ab2f78 100644 --- a/app/src/main/res/layout/activity_downloads_row.xml +++ b/app/src/main/res/layout/activity_downloads_row.xml @@ -1,6 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/upper_linear" android:layout_width="match_parent" android:layout_height="wrap_content" @@ -43,7 +44,7 @@ android:layout_height="wrap_content" android:background="@null" android:contentDescription="@string/child_board_button" - android:src="@drawable/ic_arrow_drop_down"/> + app:srcCompat="@drawable/ic_arrow_drop_down_accent_24dp"/> </LinearLayout> <LinearLayout diff --git a/app/src/main/res/layout/activity_profile.xml b/app/src/main/res/layout/activity_profile.xml index 81b3aea7..dcd3770c 100644 --- a/app/src/main/res/layout/activity_profile.xml +++ b/app/src/main/res/layout/activity_profile.xml @@ -41,7 +41,7 @@ android:adjustViewBounds="true" android:contentDescription="@string/post_thumbnail" android:fitsSystemWindows="true" - android:src="@drawable/ic_default_user_thumbnail" + app:srcCompat="@drawable/ic_default_user_thumbnail_white_24dp" app:layout_collapseMode="parallax"/> <TextView diff --git a/app/src/main/res/layout/activity_topic_overflow_menu.xml b/app/src/main/res/layout/activity_topic_overflow_menu.xml index 9ea4b0d2..43a8370c 100644 --- a/app/src/main/res/layout/activity_topic_overflow_menu.xml +++ b/app/src/main/res/layout/activity_topic_overflow_menu.xml @@ -10,7 +10,7 @@ android:layout_height="35dp" android:background="?android:attr/selectableItemBackground" android:drawablePadding="5dp" - android:drawableStart="@drawable/ic_share" + android:drawableStart="@drawable/ic_share_white_24dp" android:gravity="center_vertical" android:paddingBottom="6dp" android:paddingEnd="12dp" @@ -25,7 +25,7 @@ android:layout_height="35dp" android:background="?android:attr/selectableItemBackground" android:drawablePadding="5dp" - android:drawableStart="@drawable/ic_delete_white" + android:drawableStart="@drawable/ic_delete_white_24dp" android:gravity="center_vertical" android:paddingBottom="6dp" android:paddingEnd="12dp" diff --git a/app/src/main/res/layout/activity_topic_post_row.xml b/app/src/main/res/layout/activity_topic_post_row.xml index 6f24bedb..83c33bb2 100644 --- a/app/src/main/res/layout/activity_topic_post_row.xml +++ b/app/src/main/res/layout/activity_topic_post_row.xml @@ -1,5 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="wrap_content" @@ -59,7 +60,7 @@ android:contentDescription="@string/post_thumbnail" android:maxHeight="@dimen/thumbnail_size" android:maxWidth="@dimen/thumbnail_size" - android:src="@drawable/ic_default_user_thumbnail" /> + app:srcCompat="@drawable/ic_default_user_thumbnail_white_24dp" /> </FrameLayout> <TextView @@ -93,7 +94,7 @@ android:clickable="true" android:contentDescription="@string/post_quote_button" android:focusable="true" - android:src="@drawable/ic_format_quote_unchecked" /> + app:srcCompat="@drawable/ic_format_quote_unchecked_grey_24dp" /> <!--<ImageButton android:id="@+id/post_share_button" android:layout_width="@dimen/post_image_button" @@ -115,7 +116,7 @@ android:clickable="true" android:contentDescription="@string/post_overflow_menu_button" android:focusable="true" - android:src="@drawable/ic_more_vert" /> + app:srcCompat="@drawable/ic_more_vert_white_24dp" /> </LinearLayout> <LinearLayout diff --git a/app/src/main/res/layout/activity_topic_quick_reply_row.xml b/app/src/main/res/layout/activity_topic_quick_reply_row.xml index c77d3c07..7702994c 100644 --- a/app/src/main/res/layout/activity_topic_quick_reply_row.xml +++ b/app/src/main/res/layout/activity_topic_quick_reply_row.xml @@ -1,5 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="wrap_content" @@ -52,7 +53,7 @@ android:contentDescription="@string/post_thumbnail" android:maxHeight="@dimen/thumbnail_size" android:maxWidth="@dimen/thumbnail_size" - android:src="@drawable/ic_default_user_thumbnail" /> + app:srcCompat="@drawable/ic_default_user_thumbnail_white_24dp" /> </FrameLayout> <TextView @@ -110,7 +111,7 @@ android:layout_marginEnd="5dp" android:background="@color/card_background" android:contentDescription="@string/quick_reply_submit" - android:src="@drawable/ic_send" /> + app:srcCompat="@drawable/ic_send_accent_24dp" /> </LinearLayout> </LinearLayout> </android.support.v7.widget.CardView> diff --git a/app/src/main/res/layout/activity_upload.xml b/app/src/main/res/layout/activity_upload.xml index f32db5c5..0afd91ae 100644 --- a/app/src/main/res/layout/activity_upload.xml +++ b/app/src/main/res/layout/activity_upload.xml @@ -123,7 +123,7 @@ android:layout_height="wrap_content" android:layout_gravity="center" android:drawablePadding="5dp" - android:drawableStart="@drawable/ic_insert_drive_file" + android:drawableStart="@drawable/ic_insert_drive_file_white_24dp" android:gravity="center_vertical" android:text="@string/upload_select_file" android:textColor="@color/primary_text" /> diff --git a/app/src/main/res/layout/fragment_bookmarks_board_row.xml b/app/src/main/res/layout/fragment_bookmarks_board_row.xml index 3f381a91..d59b6c45 100644 --- a/app/src/main/res/layout/fragment_bookmarks_board_row.xml +++ b/app/src/main/res/layout/fragment_bookmarks_board_row.xml @@ -1,6 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/bookmark_row" android:layout_width="match_parent" android:layout_height="wrap_content" @@ -33,5 +34,5 @@ android:layout_marginEnd="12dp" android:background="@android:color/transparent" android:contentDescription="@string/remove_bookmark" - android:src="@drawable/ic_delete_accent"/> + app:srcCompat="@drawable/ic_delete_accent_24dp"/> </LinearLayout> \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_bookmarks_topic_row.xml b/app/src/main/res/layout/fragment_bookmarks_topic_row.xml index c2d9ce68..b3e17ebe 100644 --- a/app/src/main/res/layout/fragment_bookmarks_topic_row.xml +++ b/app/src/main/res/layout/fragment_bookmarks_topic_row.xml @@ -46,5 +46,5 @@ android:layout_marginEnd="12dp" android:background="@android:color/transparent" android:contentDescription="@string/remove_bookmark" - android:src="@drawable/ic_delete_accent"/> + app:srcCompat="@drawable/ic_delete_accent_24dp"/> </LinearLayout> \ No newline at end of file diff --git a/app/src/main/res/menu/downloads_menu.xml b/app/src/main/res/menu/downloads_menu.xml index a644bb54..4cee5c91 100644 --- a/app/src/main/res/menu/downloads_menu.xml +++ b/app/src/main/res/menu/downloads_menu.xml @@ -3,7 +3,7 @@ xmlns:app="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/menu_upload" - android:icon="@drawable/ic_file_upload" + android:icon="@drawable/ic_file_upload_white_24dp" app:showAsAction="ifRoom" android:title="@string/upload_button"> </item> diff --git a/app/src/main/res/menu/topic_menu.xml b/app/src/main/res/menu/topic_menu.xml index a6321db2..cd10259d 100644 --- a/app/src/main/res/menu/topic_menu.xml +++ b/app/src/main/res/menu/topic_menu.xml @@ -3,19 +3,19 @@ xmlns:app="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/menu_bookmark" - android:icon="@drawable/ic_bookmark_false" + android:icon="@drawable/ic_bookmark_false_accent_24dp" app:showAsAction="ifRoom" android:title="@string/bookmark"> </item> <item android:id="@+id/menu_share" - android:icon="@drawable/ic_share" + android:icon="@drawable/ic_share_white_24dp" app:showAsAction="ifRoom" android:title="@string/share"> </item> <item android:id="@+id/menu_info" - android:icon="@drawable/ic_info" + android:icon="@drawable/ic_info_outline_white_24dp" app:showAsAction="ifRoom" android:title="@string/info"> </item> From cf259cb8e879b76e38d4ed4a164691d5f02f7991 Mon Sep 17 00:00:00 2001 From: Apostolof <apotwohd@gmail.com> Date: Sat, 28 Jul 2018 12:33:54 +0300 Subject: [PATCH 8/8] Hotfix for vector drawables and uploads Signed-off-by: Apostolof <apotwohd@gmail.com> --- .../activities/topic/TopicActivity.java | 3 ++ .../activities/upload/UploadActivity.java | 2 +- .../gr/thmmy/mthmmy/base/BaseActivity.java | 38 ++++++------------- 3 files changed, 16 insertions(+), 27 deletions(-) diff --git a/app/src/main/java/gr/thmmy/mthmmy/activities/topic/TopicActivity.java b/app/src/main/java/gr/thmmy/mthmmy/activities/topic/TopicActivity.java index 041c26a6..3ff841f6 100644 --- a/app/src/main/java/gr/thmmy/mthmmy/activities/topic/TopicActivity.java +++ b/app/src/main/java/gr/thmmy/mthmmy/activities/topic/TopicActivity.java @@ -13,6 +13,7 @@ import android.os.Bundle; import android.os.Handler; import android.support.design.widget.FloatingActionButton; import android.support.v7.app.AlertDialog; +import android.support.v7.app.AppCompatDelegate; import android.support.v7.preference.PreferenceManager; import android.support.v7.widget.RecyclerView; import android.text.Html; @@ -205,6 +206,8 @@ public class TopicActivity extends BaseActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + //Fix for vector drawables on android <21 + AppCompatDelegate.setCompatVectorFromResourcesEnabled(true); setContentView(R.layout.activity_topic); Bundle extras = getIntent().getExtras(); diff --git a/app/src/main/java/gr/thmmy/mthmmy/activities/upload/UploadActivity.java b/app/src/main/java/gr/thmmy/mthmmy/activities/upload/UploadActivity.java index 207b2099..a6556cc3 100644 --- a/app/src/main/java/gr/thmmy/mthmmy/activities/upload/UploadActivity.java +++ b/app/src/main/java/gr/thmmy/mthmmy/activities/upload/UploadActivity.java @@ -363,7 +363,7 @@ public class UploadActivity extends BaseActivity { @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == REQUEST_CODE_CHOOSE_FILE && data != null) { - if (resultCode == Activity.RESULT_OK) { + if (resultCode == Activity.RESULT_CANCELED) { return; } diff --git a/app/src/main/java/gr/thmmy/mthmmy/base/BaseActivity.java b/app/src/main/java/gr/thmmy/mthmmy/base/BaseActivity.java index 6db1f0d5..32f3e891 100644 --- a/app/src/main/java/gr/thmmy/mthmmy/base/BaseActivity.java +++ b/app/src/main/java/gr/thmmy/mthmmy/base/BaseActivity.java @@ -85,8 +85,6 @@ public abstract class BaseActivity extends AppCompatActivity { private SharedPreferences bookmarksFile; private ArrayList<Bookmark> topicsBookmarked; private ArrayList<Bookmark> boardsBookmarked; - private static Drawable bookmarked; - private static Drawable notBookmarked; //Common UI elements protected Toolbar toolbar; @@ -104,18 +102,6 @@ public abstract class BaseActivity extends AppCompatActivity { if (sessionManager == null) sessionManager = BaseApplication.getInstance().getSessionManager(); - if (bookmarked == null) { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { - bookmarked = getResources().getDrawable(R.drawable.ic_bookmark_true_accent_24dp, null); - } else //noinspection deprecation - bookmarked = getResources().getDrawable(R.drawable.ic_bookmark_true_accent_24dp); - } - if (notBookmarked == null) { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { - notBookmarked = getResources().getDrawable(R.drawable.ic_bookmark_false_accent_24dp, null); - } else //noinspection deprecation - notBookmarked = getResources().getDrawable(R.drawable.ic_bookmark_false_accent_24dp); - } if (topicsBookmarked == null || boardsBookmarked == null) { bookmarksFile = getSharedPreferences(BOOKMARKS_SHARED_PREFS, Context.MODE_PRIVATE); loadSavedBookmarks(); @@ -506,9 +492,9 @@ public abstract class BaseActivity extends AppCompatActivity { protected void setTopicBookmark(MenuItem thisPageBookmarkMenuButton) { this.thisPageBookmarkMenuButton = thisPageBookmarkMenuButton; if (thisPageBookmark.matchExists(topicsBookmarked)) { - thisPageBookmarkMenuButton.setIcon(bookmarked); + thisPageBookmarkMenuButton.setIcon(R.drawable.ic_bookmark_true_accent_24dp); } else { - thisPageBookmarkMenuButton.setIcon(notBookmarked); + thisPageBookmarkMenuButton.setIcon(R.drawable.ic_bookmark_false_accent_24dp); } } @@ -518,19 +504,19 @@ public abstract class BaseActivity extends AppCompatActivity { } loadSavedBookmarks(); if (thisPageBookmark.matchExists(topicsBookmarked)) { - thisPageBookmarkMenuButton.setIcon(bookmarked); + thisPageBookmarkMenuButton.setIcon(R.drawable.ic_bookmark_true_accent_24dp); } else { - thisPageBookmarkMenuButton.setIcon(notBookmarked); + thisPageBookmarkMenuButton.setIcon(R.drawable.ic_bookmark_false_accent_24dp); } } protected void topicMenuBookmarkClick() { if (thisPageBookmark.matchExists(topicsBookmarked)) { - thisPageBookmarkMenuButton.setIcon(notBookmarked); + thisPageBookmarkMenuButton.setIcon(R.drawable.ic_bookmark_false_accent_24dp); toggleTopicToBookmarks(thisPageBookmark); Toast.makeText(getBaseContext(), "Bookmark removed", Toast.LENGTH_SHORT).show(); } else { - thisPageBookmarkMenuButton.setIcon(bookmarked); + thisPageBookmarkMenuButton.setIcon(R.drawable.ic_bookmark_true_accent_24dp); toggleTopicToBookmarks(thisPageBookmark); Toast.makeText(getBaseContext(), "Bookmark added", Toast.LENGTH_SHORT).show(); } @@ -538,18 +524,18 @@ public abstract class BaseActivity extends AppCompatActivity { protected void setBoardBookmark(final ImageButton thisPageBookmarkImageButton) { if (thisPageBookmark.matchExists(boardsBookmarked)) { - thisPageBookmarkImageButton.setImageDrawable(bookmarked); + thisPageBookmarkImageButton.setImageResource(R.drawable.ic_bookmark_true_accent_24dp); } else { - thisPageBookmarkImageButton.setImageDrawable(notBookmarked); + thisPageBookmarkImageButton.setImageResource(R.drawable.ic_bookmark_false_accent_24dp); } thisPageBookmarkImageButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if (thisPageBookmark.matchExists(boardsBookmarked)) { - thisPageBookmarkImageButton.setImageDrawable(notBookmarked); + thisPageBookmarkImageButton.setImageResource(R.drawable.ic_bookmark_false_accent_24dp); Toast.makeText(getBaseContext(), "Bookmark removed", Toast.LENGTH_SHORT).show(); } else { - thisPageBookmarkImageButton.setImageDrawable(bookmarked); + thisPageBookmarkImageButton.setImageResource(R.drawable.ic_bookmark_true_accent_24dp); Toast.makeText(getBaseContext(), "Bookmark added", Toast.LENGTH_SHORT).show(); } toggleBoardToBookmarks(thisPageBookmark); @@ -562,9 +548,9 @@ public abstract class BaseActivity extends AppCompatActivity { return; loadSavedBookmarks(); if (thisPageBookmark.matchExists(boardsBookmarked)) { - thisPageBookmarkImageButton.setImageDrawable(bookmarked); + thisPageBookmarkImageButton.setImageResource(R.drawable.ic_bookmark_true_accent_24dp); } else { - thisPageBookmarkImageButton.setImageDrawable(notBookmarked); + thisPageBookmarkImageButton.setImageResource(R.drawable.ic_bookmark_false_accent_24dp); } }