/**
* galaxy inc.
* meetup client for android
*/
package com.galaxy.meetup.client.android.hangout;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import android.content.Context;
import android.media.MediaScannerConnection;
import android.net.Uri;
import android.os.Environment;
import android.preference.PreferenceManager;
import com.galaxy.meetup.client.android.R;
import com.galaxy.meetup.client.util.EsLog;
/**
*
* @author sihai
*
*/
public class HangoutNotifications {
private static File copyResourceToFile(int i, Context context)
{
File file = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_NOTIFICATIONS);
File file1 = new File(file, "hangout_dingtone.m4a");
try
{
if(file1.exists())
{
if(EsLog.isLoggable("ExternalStorageUtils", 4))
android.util.Log.i("ExternalStorageUtils", "Notification sound already present");
} else
{
file.mkdirs();
if(EsLog.isLoggable("ExternalStorageUtils", 3))
android.util.Log.d("ExternalStorageUtils", (new StringBuilder("Copy notification to ")).append(file1.toString()).toString());
InputStream inputstream = context.getResources().openRawResource(i);
byte abyte0[] = new byte[inputstream.available()];
inputstream.read(abyte0);
inputstream.close();
FileOutputStream fileoutputstream = new FileOutputStream(file1);
fileoutputstream.write(abyte0);
fileoutputstream.flush();
fileoutputstream.close();
}
}
catch(IOException ioexception)
{
android.util.Log.w("ExternalStorageUtils", (new StringBuilder("Error writing to ")).append(file1.toString()).toString(), ioexception);
}
return file1;
}
public static Uri getDingtone(Context context)
{
String s1;
String s = context.getString(R.string.hangout_dingtone_setting_key);
s1 = PreferenceManager.getDefaultSharedPreferences(context).getString(s, null);
Uri uri;
if(s1 == null) {
boolean flag = EsLog.isLoggable("ExternalStorageUtils", 4);
uri = null;
if(flag)
{
android.util.Log.i("ExternalStorageUtils", "Hangout dingtone not set");
uri = null;
}
} else {
if(EsLog.isLoggable("ExternalStorageUtils", 4))
android.util.Log.i("ExternalStorageUtils", (new StringBuilder("Hangout dingtone; uri: ")).append(s1).toString());
uri = Uri.parse(s1);
}
return uri;
}
public static void registerHangoutSounds(final Context context)
{
File file = copyResourceToFile(R.raw.hangout_dingtone, context);
String as[] = new String[1];
as[0] = file.toString();
MediaScannerConnection.scanFile(context, as, null, new android.media.MediaScannerConnection.OnScanCompletedListener() {
public final void onScanCompleted(String s, Uri uri)
{
if(EsLog.isLoggable("ExternalStorageUtils", 4))
android.util.Log.i("ExternalStorageUtils", (new StringBuilder("Scan complete; uri: ")).append(uri).toString());
if(!HangoutNotifications.access$000(context))
HangoutNotifications.access$100(context, uri);
}
});
}
static boolean access$000(Context context)
{
boolean flag;
if(getDingtone(context) != null)
flag = true;
else
flag = false;
return flag;
}
static void access$100(Context context, Uri uri)
{
String s = context.getString(R.string.hangout_dingtone_setting_key);
android.content.SharedPreferences.Editor editor = PreferenceManager.getDefaultSharedPreferences(context).edit();
editor.putString(s, uri.toString());
editor.commit();
if(EsLog.isLoggable("ExternalStorageUtils", 4))
android.util.Log.i("ExternalStorageUtils", (new StringBuilder("Hangout dingtone set; uri: ")).append(uri).toString());
return;
}
}