package be.geelen.yarr; import android.content.Intent; import android.net.Uri; import android.os.AsyncTask; import android.os.Bundle; import android.support.v4.app.FragmentActivity; import android.support.v4.view.ViewPager; import android.support.v4.widget.DrawerLayout; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.Window; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.HttpClient; import org.apache.http.client.ResponseHandler; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; import org.apache.http.impl.client.BasicResponseHandler; import org.apache.http.impl.client.DefaultHttpClient; import org.json.JSONException; import org.json.JSONObject; import java.io.IOException; import be.geelen.yarr.comments.CommentsOverlay; import be.geelen.yarr.postPages.PostPageIndicator; import be.geelen.yarr.tools.MultipleOnPageChangeListeners; public class MainActivity extends FragmentActivity implements NavigationDrawerFragment.NavigationDrawerCallbacks { private NavigationDrawerFragment navigationDrawerFragment; private VoteViewPager voteViewPager; private CommentsOverlay commentsOverlay; private PostAdapter postAdapter; private JSONObject loginJsonObject; @Override protected void onCreate(Bundle savedInstanceState) { requestWindowFeature(Window.FEATURE_NO_TITLE); super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); navigationDrawerFragment = (NavigationDrawerFragment) getSupportFragmentManager().findFragmentById(R.id.navigation_drawer); navigationDrawerFragment.setUp(R.id.navigation_drawer, (DrawerLayout) findViewById(R.id.drawer_layout)); String url = "http://www.reddit.com/"; Intent intent = getIntent(); if (intent != null && intent.getData() != null) { url = intent.getDataString(); } if (!url.contains(".json")) { if (url.contains("?")) { String arguments = url.substring(url.indexOf('?')); url = url.substring(0, url.indexOf('?')) + ".json" + arguments; } else { url = url + (url.endsWith("/") ? "" : "/") + ".json"; } } postAdapter = new PostAdapter(getSupportFragmentManager(), url); voteViewPager = (VoteViewPager) findViewById(R.id.view_pager); voteViewPager.setAdapter(postAdapter); postAdapter.setViewPager(voteViewPager); PostPageIndicator ppi = (PostPageIndicator) findViewById(R.id.circle_page_indicator); ppi.setVoteViewPager(voteViewPager); voteViewPager.setOnPageChangeListener(new MultipleOnPageChangeListeners( ppi)); // postAdapter.getOnPageChangeListener())); addCommentsOverlay(); } @Override public void onNavigationDrawerItemSelected(int position) { Intent browserIntent = new Intent( Intent.ACTION_VIEW, Uri.parse("http://www.reddit.com" + NavigationDrawerFragment.links[position])); browserIntent.setComponent(getComponentName()); startActivity(browserIntent); } public void restoreActionBar() { } @Override public boolean onCreateOptionsMenu(Menu menu) { /* if (!navigationDrawerFragment.isDrawerOpen()) { getMenuInflater().inflate(R.menu.main, menu); restoreActionBar(); return true; } */ return super.onCreateOptionsMenu(menu); } @Override public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } void addCommentsOverlay() { commentsOverlay = CommentsOverlay.newInstance(); getSupportFragmentManager() .beginTransaction() .add(R.id.comments_overlay_container, commentsOverlay) .commit(); } public String getCurrentPermalink() { return postAdapter.getPermalink(voteViewPager.getCurrentItem()); } public JSONObject getJsonObject(int i) { return postAdapter.getChild(i); } @Override public void onBackPressed() { if (commentsOverlay.getOpened()) commentsOverlay.setOpened(false); else super.onBackPressed(); } public void setLoginJson(String loginJson) { if ("".equals(loginJson)) return; try { loginJsonObject = new JSONObject(loginJson); } catch (JSONException e) { e.printStackTrace(); } } }