package com.dappervision.wearscript.launcher; import android.content.Intent; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentManager; import android.util.Log; import com.dappervision.wearscript.R; import com.dappervision.wearscript.Utils; import org.json.simple.JSONObject; import org.json.simple.JSONValue; public class MainActivity extends FragmentActivity implements ScriptListFragment.Callbacks { private static final String TAG = "MainActivity"; private static final boolean DBG = false; private static final String GISTS_PATH = "gists/"; private static final String WEARSCRIPT_PATH = Utils.dataPath() + GISTS_PATH; private boolean launchScriptList = true; protected Fragment createFragment() { return ScriptListFragment.newInstance(); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(getLayoutResId()); String gist = Utils.getPackageGist(this); if (DBG) Log.d(TAG, "Gist id is " + gist); if (gist != null) { if (DBG) Log.d(TAG, "Found package name gist id " + gist); byte[] manifestData = Utils.LoadData(GISTS_PATH + gist, "manifest.json"); if (manifestData != null) { JSONObject manifest = (JSONObject) JSONValue.parse(new String(manifestData)); if (manifest != null && manifest.containsKey("name")) { String filePath = WEARSCRIPT_PATH + gist + "/" + "glass.html"; WearScriptInfo wsInfo = new WearScriptInfo((String) manifest.get("name"), filePath); Intent intent = wsInfo.getIntent(); int flags = intent.getFlags() | Intent.FLAG_ACTIVITY_SINGLE_TOP; intent.setFlags(flags); startActivity(intent); launchScriptList = false; } else { if (DBG) Log.d(TAG, "Didn't find gist name in manifest."); } } } } protected int getLayoutResId() { return R.layout.activity_fragment; } @Override protected void onResume() { super.onResume(); if (DBG) Log.d(TAG, "LifeCycle: onResume"); if (launchScriptList) { FragmentManager manager = getSupportFragmentManager(); Fragment fragment = createFragment(); manager.beginTransaction() .replace(R.id.fragmentContainer, fragment) .commit(); } } @Override public void onScriptSelected(WearScriptInfo scriptInfo) { startActivity(scriptInfo.getIntent()); } }