Upgraded Material Dialogs

- native material progress dialog
- auto hide keyboard when saving
This commit is contained in:
Karim Abou Zeid 2015-02-15 12:36:13 +01:00
commit cafd1081ca
5 changed files with 20 additions and 33 deletions

View file

@ -17,7 +17,6 @@ import android.view.MenuItem;
import android.view.View;
import android.view.animation.OvershootInterpolator;
import android.widget.ImageView;
import android.widget.TextView;
import com.afollestad.materialdialogs.MaterialDialog;
import com.github.ksoichiro.android.observablescrollview.ObservableScrollView;
@ -311,13 +310,14 @@ public abstract class AbsTagEditorActivity extends ActionBarActivity {
}
protected void writeValuesToFiles(final Map<FieldKey, String> fieldKeyValueMap, final Artwork artwork, final boolean deleteArtwork) {
Util.hideSoftKeyboard(this);
final String writingFileStr = getResources().getString(R.string.writing_file_number);
final String savingStr = getResources().getString(R.string.saving_changes);
final MaterialDialog progressDialog = new MaterialDialog.Builder(AbsTagEditorActivity.this)
.customView(R.layout.dialog_loading, true)
.title(writingFileStr)
.title(savingStr)
.cancelable(false)
.progress(true, 0)
.build();
final TextView progressText = (TextView) progressDialog.getCustomView().findViewById(R.id.text);
progressDialog.show();
new Thread(new Runnable() {
@Override
@ -328,7 +328,7 @@ public abstract class AbsTagEditorActivity extends ActionBarActivity {
runOnUiThread(new Runnable() {
@Override
public void run() {
progressText.setText((finalI + 1) + "/" + songPaths.size());
progressDialog.setContent(writingFileStr + " " + ((finalI + 1) + "/" + songPaths.size()));
}
});
try {

View file

@ -1,6 +1,7 @@
package com.kabouzeid.materialmusic.util;
import android.annotation.TargetApi;
import android.app.Activity;
import android.content.Context;
import android.content.res.TypedArray;
import android.database.Cursor;
@ -10,8 +11,10 @@ import android.net.NetworkInfo;
import android.net.Uri;
import android.provider.MediaStore;
import android.util.TypedValue;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.view.inputmethod.InputMethodManager;
import com.kabouzeid.materialmusic.App;
import com.kabouzeid.materialmusic.R;
@ -178,4 +181,14 @@ public class Util {
private static Bitmap getScaledBitmap(final Bitmap bitmap) {
return Bitmap.createScaledBitmap(bitmap, albumArtSize, albumArtSize, false);
}
public static void hideSoftKeyboard(Activity activity) {
if (activity != null) {
View currentFocus = activity.getCurrentFocus();
if (currentFocus != null) {
InputMethodManager inputMethodManager = (InputMethodManager) activity.getSystemService(Activity.INPUT_METHOD_SERVICE);
inputMethodManager.hideSoftInputFromWindow(currentFocus.getWindowToken(), 0);
}
}
}
}

View file

@ -1,25 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<ProgressBar
android:id="@+id/progressBar1"
style="?android:attr/progressBarStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_gravity="center_vertical"/>
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:fontFamily="sans-serif"
android:paddingLeft="16dp"
android:textAppearance="?android:textAppearanceMedium"
android:textColor="?title_text_color"
android:textSize="18sp"/>
</LinearLayout>

View file

@ -49,6 +49,7 @@
<string name="track_hint">Track (2 for track 2 or 3004 for CD3 track 4)</string>
<string name="album_or_artist_empty">The album title or the album artist text field is empty.</string>
<string name="writing_file_number">Writing file</string>
<string name="saving_changes">Saving changes…</string>
<string name="title_activity_album_tag_editor">AlbumTagEditorActivity</string>
<string name="label_details">Details</string>
<string name="label_file_name">File name</string>