diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 8d1cf456d..9279237c0 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -24,7 +24,7 @@
package="com.amaze.filemanager"
android:versionCode="1"
android:versionName="1.0" >
-
+
diff --git a/res/menu/contextual.xml b/res/menu/contextual.xml
index a27c3f77a..ae082d8f8 100644
--- a/res/menu/contextual.xml
+++ b/res/menu/contextual.xml
@@ -69,4 +69,7 @@
+
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 47e330f6e..8eebec79e 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -241,5 +241,6 @@
Type (Desc)
root
New
+ Set as ringtone
diff --git a/src/com/amaze/filemanager/fragments/Main.java b/src/com/amaze/filemanager/fragments/Main.java
index 2afcff07d..fd8c88938 100644
--- a/src/com/amaze/filemanager/fragments/Main.java
+++ b/src/com/amaze/filemanager/fragments/Main.java
@@ -25,6 +25,8 @@ import android.animation.AnimatorListenerAdapter;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.BroadcastReceiver;
+import android.content.ContentResolver;
+import android.content.ContentValues;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
@@ -35,6 +37,7 @@ import android.graphics.Color;
import android.graphics.ColorMatrix;
import android.graphics.ColorMatrixColorFilter;
import android.graphics.drawable.Drawable;
+import android.media.RingtoneManager;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Build;
@@ -42,6 +45,8 @@ import android.os.Bundle;
import android.os.CountDownTimer;
import android.os.Environment;
import android.preference.PreferenceManager;
+import android.provider.MediaStore;
+import android.provider.Settings;
import android.support.v4.app.FragmentTransaction;
import android.util.DisplayMetrics;
import android.view.ActionMode;
@@ -727,6 +732,7 @@ public class Main extends android.support.v4.app.Fragment {
hideOption(R.id.about, menu);
hideOption(R.id.openwith, menu);
hideOption(R.id.ex, menu);
+ hideOption(R.id.setringtone,menu);
mode.setTitle(utils.getString(getActivity(), R.string.select));
if(Build.VERSION.SDK_INT<19)
getActivity().findViewById(R.id.action_bar).setVisibility(View.GONE);
@@ -753,7 +759,9 @@ public class Main extends android.support.v4.app.Fragment {
showOption(R.id.ex, menu);
hideOption(R.id.sethome, menu);
showOption(R.id.share, menu);
- } else {
+ }else if(x.getName().endsWith(".mp3"))
+ {showOption(R.id.setringtone,menu);}
+ else {
hideOption(R.id.ex, menu);
hideOption(R.id.sethome, menu);
showOption(R.id.openwith, menu);
@@ -797,6 +805,16 @@ public class Main extends android.support.v4.app.Fragment {
utils.showProps(new File(x), ma,rootMode);
mode.finish();
return true;
+ case R.id.setringtone:
+ File fx;
+ if(results)
+ fx=new File(slist.get((plist.get(0))).getDesc());
+ else
+ fx=new File(list.get((plist.get(0))).getDesc());
+ Uri uri = MediaStore.Audio.Media.getContentUriForPath(fx.getPath());
+ Settings.System.putString(getActivity().getContentResolver(),
+ Settings.System.RINGTONE, uri.toString());
+ return true;
case R.id.delete:
if(results)
utils.deleteFiles(slist,ma,plist);
diff --git a/src/com/amaze/filemanager/utils/RootHelper.java b/src/com/amaze/filemanager/utils/RootHelper.java
index af0cff9c0..0659b9a71 100644
--- a/src/com/amaze/filemanager/utils/RootHelper.java
+++ b/src/com/amaze/filemanager/utils/RootHelper.java
@@ -93,14 +93,16 @@ public class RootHelper
public static ArrayList getFilesList(String path,boolean showHidden){
File f=new File(path);
ArrayList files=new ArrayList();
- if(f.exists() && f.isDirectory()){
- for(File x:f.listFiles()){
- if(showHidden){
- files.add(new String[]{x.getPath(),"",parseFilePermission(x)});
+ try {
+ if(f.exists() && f.isDirectory()){
+ for(File x:f.listFiles()){
+ if(showHidden){
+ files.add(new String[]{x.getPath(),"",parseFilePermission(x)});
+ }
+ else{if(!x.isHidden()){files.add(new String[]{x.getPath(),"",parseFilePermission(x)});}}
}
- else{if(!x.isHidden()){files.add(new String[]{x.getPath(),"",parseFilePermission(x)});}}
- }
- }
+ }}catch (Exception e){}
+
return files;}
public static String parseFilePermission(File f){