Skip to content

Commit

Permalink
Blank screen on going back fixed
Browse files Browse the repository at this point in the history
When going back from wwhgv the screen kept in blank appearantely because
of threads still running. Fixed them on onPause
  • Loading branch information
leninbooter committed Jul 31, 2014
1 parent 6f9b49b commit fbf918a
Show file tree
Hide file tree
Showing 3 changed files with 60 additions and 53 deletions.
Binary file modified build/intermediates/model_data.bin
Binary file not shown.
18 changes: 11 additions & 7 deletions whatsup/src/main/java/com/whatsup/whatsup/WhatWasHereFragment.java
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@ public void onCreate(Bundle savedInstanceState) {

@Override
public View onCreateView( LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState ) {
Log.d("onCreateView from what was here", "entered");
Log.d("Fragment wwh:", "onCreateView");
mWhatWasHereListView = (RelativeLayout) inflater.inflate( R.layout.fragment_what_was_here, container, false );
TextView place_name = (TextView) mWhatWasHereListView.findViewById(R.id.place_name);
place_name.setText(getString(R.string.what_was_at) + " " + getArguments().getString(PLACE_NAME) + "?");
Expand All @@ -138,7 +138,7 @@ public void onResume() {
mListener.setCurrentFragmentTag("events");
mListener.setmTitle( getArguments().getString(PLACE_NAME) );
if( mPaused ) {
Log.d("Fragment wwh:", "restored onCreateView");
Log.d("Fragment wwh:", "restored onResume");
getView().findViewById( R.id.progress_bar ).setVisibility(View.GONE);
mPaused = false;
}
Expand Down Expand Up @@ -302,11 +302,15 @@ protected void onPostExecute(List<HashMap<String, Object>> adapter) {
month_c = month;
}
whatWasHereListViewAdapter = new WhatWasHereListViewAdapter( getActivity(), items );
getView().findViewById( R.id.progress_bar ).setVisibility(View.GONE);
setListAdapter(whatWasHereListViewAdapter);

if( adapter.size() == 0 ) {
getView().findViewById(R.id.no_info_not_rellay).setVisibility(View.VISIBLE);
try {
if (adapter.size() == 0) {
getView().findViewById(R.id.no_info_not_rellay).setVisibility(View.VISIBLE);
} else {
getView().findViewById(R.id.progress_bar).setVisibility(View.GONE);
setListAdapter(whatWasHereListViewAdapter);
}
}catch ( NullPointerException e ) {
Log.e( "NullPointerException onPostExecute from ListViewLoaderTask", "getView is null.");
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@
import java.util.concurrent.Executor;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;

/**
* A simple {@link android.app.Fragment} subclass.
Expand Down Expand Up @@ -116,13 +117,10 @@ public void onResume() {
public void onPause() {
super.onPause();
downloadTask.cancel(true);
/*if( imageLoaderTask != null ) {
for (int i = 0; i < imageLoaderTask.length; i++) {
imageLoaderTask[i].cancel(true);
}
}*/
if( service != null)
service.shutdownNow();
if( service != null) {
shutdownAndAwaitTermination( service );
}

}

@Override
Expand Down Expand Up @@ -163,21 +161,12 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container,
Log.d("WWHFGV onCreateView", "entered");
mWhatWasHereListView = null;
if( savedInstanceState == null ) {
try {
mWhatWasHereListView = (RelativeLayout) inflater.inflate(R.layout.fragment_what_was_here_gv, container, false);
String datestr = getArguments().getString(EVENT_DATE);
SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date inputDate = fmt.parse(datestr);
DateFormat.getDateInstance().format(inputDate);
TextView event_name = (TextView) mWhatWasHereListView.findViewById(R.id.event_name);
TextView event_date = (TextView) mWhatWasHereListView.findViewById(R.id.event_date);

event_name.setText(getArguments().getString(EVENT_NAME));
event_date.setText(DateFormat.getDateInstance().format(inputDate));
}catch ( ParseException e) {
Log.d("Exception parsing date", e.getMessage() );
e.printStackTrace();
}
event_name.setText( getArguments().getString(EVENT_NAME) );
event_date.setText( getArguments().getString(EVENT_DATE) );
}
return mWhatWasHereListView;
}
Expand All @@ -203,6 +192,25 @@ public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
return avoicl;
}

void shutdownAndAwaitTermination(ExecutorService pool) {
pool.shutdown(); // Disable new tasks from being submitted
try {
// Wait a while for existing tasks to terminate
if (!pool.awaitTermination(30, TimeUnit.SECONDS)) {
pool.shutdownNow(); // Cancel currently executing tasks
// Wait a while for tasks to respond to being cancelled
if (!pool.awaitTermination(30, TimeUnit.SECONDS))
Log.d("Pausing WwhfGV:", "Could not stop some threads");
}

}catch (InterruptedException ie) {
// (Re-)Cancel if current thread also interrupted
pool.shutdownNow();
// Preserve interrupt status
Thread.currentThread().interrupt();
}
}

private class PictsJSONparser {

//Images processing
Expand Down Expand Up @@ -260,40 +268,35 @@ protected List<HashMap<String, Object>> doInBackground(String... strJson) {
}catch ( Exception e ) {
Log.d("Exception", e.toString());
}
//String[] from = { "title"};
//int[] to = { R.id.event_title};
//SimpleAdapter adapter = new SimpleAdapter(getActivity(), events, R.layout.fragment_what_was_here_lv_item, from, to);
if( isCancelled() ) return null;
return mPictures;
}

@Override
protected void onPostExecute(List<HashMap<String, Object>> pictures) {
getView().findViewById(R.id.loadingPanel).setVisibility(View.GONE);
if( pictures.size() == 0 ) {
getView().findViewById(R.id.no_info_not_rellay).setVisibility(View.VISIBLE);
}else {
imgAdapter = new ImageAdapter( getActivity(), R.layout.fragment_what_was_here_gv_item, pictures.size() );
GridView gridview = (GridView) getView().findViewById(R.id.gridview);
gridview.setAdapter( imgAdapter );
gridview.setOnItemClickListener( getImageClickListener() );
gridview.setFastScrollEnabled( true );
gridview.setFastScrollAlwaysVisible( false );
imageLoaderTask = new ImageLoaderTask[ pictures.size() ];
service = Executors.newFixedThreadPool(100);
for( int i = 0; i < imageLoaderTask.length; i++ ) {
Log.d("new thread for image: ", mPictures.get( i ).get( "source" ).toString() );

service.submit( new ImageLoaderTask(mPictures.get(i).get("source").toString(),
mPictures.get(i).get("source").toString().substring(1, mPictures.get(i).get("source").toString().length()),
String.valueOf(i)) );
/*imageLoaderTask[i] = new ImageLoaderTask();
imageLoaderTask[i].executeOnExecutor(
AsyncTask.THREAD_POOL_EXECUTOR,
mPictures.get(i).get("source").toString(),
mPictures.get(i).get("source").toString().substring(1, mPictures.get(i).get("source").toString().length()),
String.valueOf(i)
);*/
try {
getView().findViewById(R.id.loadingPanel).setVisibility(View.GONE);
if (pictures.size() == 0) {
getView().findViewById(R.id.no_info_not_rellay).setVisibility(View.VISIBLE);
} else {
imgAdapter = new ImageAdapter(getActivity(), R.layout.fragment_what_was_here_gv_item, pictures.size());
GridView gridview = (GridView) getView().findViewById(R.id.gridview);
gridview.setAdapter(imgAdapter);
gridview.setOnItemClickListener(getImageClickListener());
gridview.setFastScrollEnabled(true);
gridview.setFastScrollAlwaysVisible(false);
imageLoaderTask = new ImageLoaderTask[pictures.size()];
service = Executors.newFixedThreadPool(100);
for (int i = 0; i < imageLoaderTask.length; i++) {
Log.d("new thread for image: ", mPictures.get(i).get("source").toString());
service.submit( new ImageLoaderTask(mPictures.get(i).get("source").toString(),
mPictures.get(i).get("source").toString().substring(1, mPictures.get(i).get("source").toString().length()),
String.valueOf(i))
);
}
}
}catch ( NullPointerException e ) {
Log.d("onPostExecute WhatWasHereFragmentGV class:","NullPointerException getting back just before drawing display");
}
}
}
Expand Down

0 comments on commit fbf918a

Please sign in to comment.