From a9fdb2bfafb448eea8225a9e525480ab607f92c7 Mon Sep 17 00:00:00 2001 From: Ilia Kurtov Date: Tue, 23 Aug 2016 15:16:25 +0300 Subject: [PATCH 01/14] edit layout --- app/build.gradle | 10 +- build.gradle | 2 +- gradle/wrapper/gradle-wrapper.properties | 4 +- .../MultiImageSelectorActivity.java | 101 +++++++++--------- .../color/mis_main_menu_button_selector.xml | 5 + .../drawable-v21/mis_global_dark_selector.xml | 9 ++ .../res/drawable/mis_global_dark_selector.xml | 4 + .../main/res/layout/mis_activity_default.xml | 76 ++++++++----- .../src/main/res/values/colors.xml | 7 ++ 9 files changed, 130 insertions(+), 88 deletions(-) create mode 100644 multi-image-selector/src/main/res/color/mis_main_menu_button_selector.xml create mode 100644 multi-image-selector/src/main/res/drawable-v21/mis_global_dark_selector.xml create mode 100644 multi-image-selector/src/main/res/drawable/mis_global_dark_selector.xml diff --git a/app/build.gradle b/app/build.gradle index 6536c30..e26c855 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,12 +1,12 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 23 - buildToolsVersion "23.0.3" + compileSdkVersion 24 + buildToolsVersion "24.0.1" defaultConfig { applicationId "me.nereo.multiimageselector" - minSdkVersion 12 + minSdkVersion 14 targetSdkVersion 23 versionCode 1 versionName "1.0" @@ -21,6 +21,8 @@ android { dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') - compile 'com.android.support:appcompat-v7:23.4.0' + compile 'com.android.support:support-compat:24.2.0' + compile 'com.android.support:design:24.2.0' + compile project(':multi-image-selector') } diff --git a/build.gradle b/build.gradle index f6e9073..d14039d 100644 --- a/build.gradle +++ b/build.gradle @@ -5,7 +5,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:2.1.0' + classpath 'com.android.tools.build:gradle:2.1.3' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 7af1915..f6d2cb8 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Wed May 18 11:49:16 CST 2016 +#Tue Aug 23 14:55:54 MSK 2016 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip diff --git a/multi-image-selector/src/main/java/me/nereo/multi_image_selector/MultiImageSelectorActivity.java b/multi-image-selector/src/main/java/me/nereo/multi_image_selector/MultiImageSelectorActivity.java index 26905ca..134bbd3 100644 --- a/multi-image-selector/src/main/java/me/nereo/multi_image_selector/MultiImageSelectorActivity.java +++ b/multi-image-selector/src/main/java/me/nereo/multi_image_selector/MultiImageSelectorActivity.java @@ -5,13 +5,13 @@ import android.graphics.Color; import android.net.Uri; import android.os.Build; import android.os.Bundle; +import android.support.annotation.NonNull; import android.support.v4.app.Fragment; import android.support.v7.app.ActionBar; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import android.view.MenuItem; import android.view.View; -import android.widget.Button; import java.io.File; import java.util.ArrayList; @@ -22,43 +22,52 @@ import java.util.ArrayList; * Updated by nereo on 2016/1/19. * Updated by nereo on 2016/5/18. */ -public class MultiImageSelectorActivity extends AppCompatActivity - implements MultiImageSelectorFragment.Callback{ +public class MultiImageSelectorActivity extends AppCompatActivity implements MultiImageSelectorFragment.Callback { // Single choice public static final int MODE_SINGLE = 0; // Multi choice public static final int MODE_MULTI = 1; - /** Max image size,int,{@link #DEFAULT_IMAGE_SIZE} by default */ + /** + * Max image size,int,{@link #DEFAULT_IMAGE_SIZE} by default + */ public static final String EXTRA_SELECT_COUNT = "max_select_count"; - /** Select mode,{@link #MODE_MULTI} by default */ + /** + * Select mode,{@link #MODE_MULTI} by default + */ public static final String EXTRA_SELECT_MODE = "select_count_mode"; - /** Whether show camera,true by default */ + /** + * Whether show camera,true by default + */ public static final String EXTRA_SHOW_CAMERA = "show_camera"; - /** Result data set,ArrayList<String>*/ + /** + * Result data set,ArrayList<String> + */ public static final String EXTRA_RESULT = "select_result"; - /** Original data set */ + /** + * Original data set + */ public static final String EXTRA_DEFAULT_SELECTED_LIST = "default_list"; // Default image size private static final int DEFAULT_IMAGE_SIZE = 9; + @NonNull private ArrayList resultList = new ArrayList<>(); - private Button mSubmitButton; - private int mDefaultCount = DEFAULT_IMAGE_SIZE; + + private View submitButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - setTheme(R.style.MIS_NO_ACTIONBAR); setContentView(R.layout.mis_activity_default); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { getWindow().setStatusBarColor(Color.BLACK); } - Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); - if(toolbar != null){ + final Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); + if (toolbar != null) { setSupportActionBar(toolbar); } @@ -68,37 +77,36 @@ public class MultiImageSelectorActivity extends AppCompatActivity } final Intent intent = getIntent(); - mDefaultCount = intent.getIntExtra(EXTRA_SELECT_COUNT, DEFAULT_IMAGE_SIZE); + final int mDefaultCount = intent.getIntExtra(EXTRA_SELECT_COUNT, DEFAULT_IMAGE_SIZE); final int mode = intent.getIntExtra(EXTRA_SELECT_MODE, MODE_MULTI); final boolean isShow = intent.getBooleanExtra(EXTRA_SHOW_CAMERA, true); - if(mode == MODE_MULTI && intent.hasExtra(EXTRA_DEFAULT_SELECTED_LIST)) { + if (mode == MODE_MULTI && intent.hasExtra(EXTRA_DEFAULT_SELECTED_LIST)) { resultList = intent.getStringArrayListExtra(EXTRA_DEFAULT_SELECTED_LIST); } - mSubmitButton = (Button) findViewById(R.id.commit); - if(mode == MODE_MULTI){ - updateDoneText(resultList); - mSubmitButton.setVisibility(View.VISIBLE); - mSubmitButton.setOnClickListener(new View.OnClickListener() { + submitButton = findViewById(R.id.multi_image_selector_submit_button); + if (mode == MODE_MULTI) { + updateSubmitButton(); + submitButton.setOnClickListener(new View.OnClickListener() { @Override - public void onClick(View view) { - if(resultList != null && resultList.size() >0){ + public void onClick(final View v) { + if (!resultList.isEmpty()) { // Notify success Intent data = new Intent(); data.putStringArrayListExtra(EXTRA_RESULT, resultList); setResult(RESULT_OK, data); - }else{ + } else { setResult(RESULT_CANCELED); } finish(); } }); - }else{ - mSubmitButton.setVisibility(View.GONE); + } else { + submitButton.setVisibility(View.GONE); } - if(savedInstanceState == null){ - Bundle bundle = new Bundle(); + if (savedInstanceState == null) { + final Bundle bundle = new Bundle(); bundle.putInt(MultiImageSelectorFragment.EXTRA_SELECT_COUNT, mDefaultCount); bundle.putInt(MultiImageSelectorFragment.EXTRA_SELECT_MODE, mode); bundle.putBoolean(MultiImageSelectorFragment.EXTRA_SHOW_CAMERA, isShow); @@ -122,26 +130,13 @@ public class MultiImageSelectorActivity extends AppCompatActivity return super.onOptionsItemSelected(item); } - /** - * Update done button by select image data - * @param resultList selected image data - */ - private void updateDoneText(ArrayList resultList){ - int size = 0; - if(resultList == null || resultList.size()<=0){ - mSubmitButton.setText(R.string.mis_action_done); - mSubmitButton.setEnabled(false); - }else{ - size = resultList.size(); - mSubmitButton.setEnabled(true); - } - mSubmitButton.setText(getString(R.string.mis_action_button_string, - getString(R.string.mis_action_done), size, mDefaultCount)); + private void updateSubmitButton() { + submitButton.setEnabled(!resultList.isEmpty()); } @Override - public void onSingleImageSelected(String path) { - Intent data = new Intent(); + public void onSingleImageSelected(final String path) { + final Intent data = new Intent(); resultList.add(path); data.putStringArrayListExtra(EXTRA_RESULT, resultList); setResult(RESULT_OK, data); @@ -149,24 +144,24 @@ public class MultiImageSelectorActivity extends AppCompatActivity } @Override - public void onImageSelected(String path) { - if(!resultList.contains(path)) { + public void onImageSelected(final String path) { + if (!resultList.contains(path)) { resultList.add(path); } - updateDoneText(resultList); + updateSubmitButton(); } @Override - public void onImageUnselected(String path) { - if(resultList.contains(path)){ + public void onImageUnselected(final String path) { + if (resultList.contains(path)) { resultList.remove(path); } - updateDoneText(resultList); + updateSubmitButton(); } @Override - public void onCameraShot(File imageFile) { - if(imageFile != null) { + public void onCameraShot(final File imageFile) { + if (imageFile != null) { // notify system the image has change sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.fromFile(imageFile))); @@ -177,4 +172,4 @@ public class MultiImageSelectorActivity extends AppCompatActivity finish(); } } -} +} \ No newline at end of file diff --git a/multi-image-selector/src/main/res/color/mis_main_menu_button_selector.xml b/multi-image-selector/src/main/res/color/mis_main_menu_button_selector.xml new file mode 100644 index 0000000..6d14c85 --- /dev/null +++ b/multi-image-selector/src/main/res/color/mis_main_menu_button_selector.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/multi-image-selector/src/main/res/drawable-v21/mis_global_dark_selector.xml b/multi-image-selector/src/main/res/drawable-v21/mis_global_dark_selector.xml new file mode 100644 index 0000000..9b26a30 --- /dev/null +++ b/multi-image-selector/src/main/res/drawable-v21/mis_global_dark_selector.xml @@ -0,0 +1,9 @@ + + + + + + + + \ No newline at end of file diff --git a/multi-image-selector/src/main/res/drawable/mis_global_dark_selector.xml b/multi-image-selector/src/main/res/drawable/mis_global_dark_selector.xml new file mode 100644 index 0000000..cc265ef --- /dev/null +++ b/multi-image-selector/src/main/res/drawable/mis_global_dark_selector.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/multi-image-selector/src/main/res/layout/mis_activity_default.xml b/multi-image-selector/src/main/res/layout/mis_activity_default.xml index 7e10c30..9651806 100644 --- a/multi-image-selector/src/main/res/layout/mis_activity_default.xml +++ b/multi-image-selector/src/main/res/layout/mis_activity_default.xml @@ -1,40 +1,60 @@ + xmlns:app="http://schemas.android.com/apk/res-auto" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:orientation="vertical"> - + android:layout_height="56dp" + android:background="@color/mis_global_main_gray"> -