Skip to content

Commit

Permalink
Merge remote-tracking branch 'refs/remotes/origin/master' into dev-gmx
Browse files Browse the repository at this point in the history
  • Loading branch information
Carl26 committed Mar 22, 2017
2 parents 5cb91d2 + ecf5d59 commit f99e22e
Show file tree
Hide file tree
Showing 24 changed files with 861 additions and 56 deletions.
15 changes: 11 additions & 4 deletions frontend/Movie_Pigeon/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,6 @@ android {

dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile files('libs/universal-image-loader-1.9.5.jar')
compile files('libs/gson-2.8.0.jar')
compile files('libs/eventbus-3.0.0.jar')
Expand All @@ -46,5 +43,15 @@ dependencies {
compile 'com.google.code.gson:gson:2.8.0'
compile 'org.greenrobot:eventbus:3.0.0'
testCompile 'junit:junit:4.12'
androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.2'
androidTestCompile 'com.android.support:support-annotations:25.1.1'

// Android runner and rules support
androidTestCompile 'com.android.support.test:runner:0.5'
androidTestCompile 'com.android.support.test:rules:0.5'
// Espresso support
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
// intent mocking support
androidTestCompile 'com.android.support.test.espresso:espresso-intents:2.2.2'
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
package org.example.team_pigeon.movie_pigeon;

import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.test.InstrumentationRegistry;
import android.support.test.rule.ActivityTestRule;
import android.support.test.runner.AndroidJUnit4;

import org.example.team_pigeon.movie_pigeon.models.Movie;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;

import java.util.ArrayList;

import static android.support.test.espresso.Espresso.onData;
import static android.support.test.espresso.Espresso.onView;
import static android.support.test.espresso.assertion.ViewAssertions.matches;
import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed;
import static android.support.test.espresso.matcher.ViewMatchers.withId;
import static android.support.test.espresso.matcher.ViewMatchers.withText;

/**
* Created by SHENGX on 2017/3/19.
*/
@RunWith(AndroidJUnit4.class)
public class DisplayActivityTest {
@Rule
public ActivityTestRule<DisplayActivity> displayActivityActivityTestRule = new ActivityTestRule<DisplayActivity>(DisplayActivity.class) {
@Override
protected Intent getActivityIntent() {
ArrayList<Movie> testMovieList = new ArrayList<>();
for (int i = 0; i < 10; i++) {
testMovieList.add(new Movie(String.valueOf(i), "id"));
}
Bundle argument = new Bundle();
argument.putSerializable("movieList", testMovieList);
argument.putString("title", "TestBar");
argument.putString("type", "test");
Context targetContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
Intent result = new Intent(targetContext, DisplayActivity.class);
result.putExtra("bundle",argument);
return result;
}
};

@Test
public void showMovieListProperly() {
onView(withId(R.id.toolbar_display_page)).check(matches(isDisplayed()));
onView(withId(R.id.list_movies)).check(matches(isDisplayed()));
for(int i = 0;i<10;i++) {
onData(withText(String.valueOf(i))).inAdapterView(withId(R.id.list_movies)).atPosition(i);
}
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
package org.example.team_pigeon.movie_pigeon;

import android.content.Context;
import android.content.Intent;
import android.support.test.InstrumentationRegistry;
import android.support.test.rule.ActivityTestRule;
import android.support.test.runner.AndroidJUnit4;

import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;

import static android.support.test.espresso.Espresso.onView;
import static android.support.test.espresso.action.ViewActions.click;
import static android.support.test.espresso.assertion.ViewAssertions.matches;
import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed;
import static android.support.test.espresso.matcher.ViewMatchers.withId;
import static android.support.test.espresso.matcher.ViewMatchers.withText;

/**
* Created by SHENGX on 2017/3/19.
*/

@RunWith(AndroidJUnit4.class)
public class HomePageActivityTest {
@Rule
public ActivityTestRule<HomePageActivity> homePageActivityActivityTestRule = new ActivityTestRule<HomePageActivity>(HomePageActivity.class) {
@Override
protected Intent getActivityIntent() {
Context targetContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
Intent result = new Intent(targetContext, HomePageActivity.class);
result.putExtra("Token", "test token");
return result;
}
};

@Test
public void ensureUiComponentsDisplayed() {
onView(withId(R.id.rg_tab_bar))
.check(matches(isDisplayed()));
onView(withId(R.id.rb_now_showing))
.check(matches(isDisplayed()));
onView(withId(R.id.rb_home))
.check(matches(isDisplayed()));
onView(withId(R.id.rb_me))
.check(matches(isDisplayed()));
onView(withId(R.id.view_pager))
.check(matches(isDisplayed()));
onView(withId(R.id.rg_tab_bar))
.check(matches(isDisplayed()));
}

@Test
public void viewPagerSwitchCorrectly() {
onView(withText("Cinemas")).perform(click());
onView(withId(R.id.spinner_cinema_brand)).check(matches(isDisplayed()));
onView(withText("Me")).perform(click());
onView(withText("My Ratings")).check(matches(isDisplayed()));
onView(withText("My Bookmarks")).check(matches(isDisplayed()));
onView(withText("Settings")).check(matches(isDisplayed()));
onView(withText("Logout")).check(matches(isDisplayed()));
onView(withText("Home")).perform(click());
onView(withId(R.id.search_view)).check(matches(isDisplayed()));
onView(withId(R.id.grid_now_showing)).check(matches(isDisplayed()));
onView(withId(R.id.grid_recommended)).check(matches(isDisplayed()));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
import org.example.team_pigeon.movie_pigeon.models.Cinema;
import org.example.team_pigeon.movie_pigeon.models.Movie;
import org.example.team_pigeon.movie_pigeon.models.Schedule;
import org.example.team_pigeon.movie_pigeon.utils.TimeUtil;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;

Expand Down Expand Up @@ -71,6 +72,7 @@ public class CinemaFragment extends Fragment implements AdapterView.OnItemSelect
private NowShowingListAdapter nowShowingListAdapter = null;
private boolean isCinemasLoaded = false;
private int currentDay;
private TimeUtil timeUtil = new TimeUtil();


public CinemaFragment() {
Expand All @@ -82,8 +84,8 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_cinema, container, false);
bindViews(view);
dateList = getDateList();
dateListInString = getDateListToString(dateList);
dateList = timeUtil.getDateList();
dateListInString = timeUtil.getDateListToString_MMDDE(dateList);
brands = this.getActivity().getResources().getStringArray(R.array.cinemaBrands);
brandAdapter = new ArrayAdapter<>(this.getActivity(), R.layout.spinner_list_item,brands);
brandSpinner.setAdapter(brandAdapter);
Expand Down Expand Up @@ -151,27 +153,6 @@ private ArrayList<String> convertToShowTimeArray(Date date, ArrayList<Schedule>
return showTimeList;
}

private List<Date> getDateList(){
List<Date> week = new ArrayList<>();
Calendar timeToAdd = Calendar.getInstance();
Date date;
for(int i=0;i<7;i++){
date = timeToAdd.getTime();
week.add(date);
timeToAdd.add(Calendar.DATE,1);
}
return week;
}

private List<String> getDateListToString(List<Date> week){
List<String> stringList = new ArrayList<>();
stringList.add("Please Choose Date");
for(Date date:week){
stringList.add(new SimpleDateFormat("MM-dd E", Locale.ENGLISH).format(date));
}
return stringList;
}

@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
String cinemaId;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,15 @@
import android.view.MenuItem;
import android.widget.FrameLayout;

import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiskCache;
import com.nostra13.universalimageloader.cache.memory.impl.LruMemoryCache;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.nostra13.universalimageloader.core.assist.QueueProcessingType;
import com.nostra13.universalimageloader.utils.StorageUtils;

import java.io.File;

public class DisplayActivity extends AppCompatActivity {
private FrameLayout frameLayout;
private android.app.FragmentManager fragmentManager = null;
Expand All @@ -28,6 +37,9 @@ protected void onCreate(Bundle savedInstanceState) {
setSupportActionBar(toolbar);
fragmentManager = getFragmentManager();
frameLayout = (FrameLayout) findViewById(R.id.fl_content);
if(!ImageLoader.getInstance().isInited()){
initImageLoaderConfig();
}
// add back arrow to toolbar
if (getSupportActionBar() != null){
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
Expand Down Expand Up @@ -79,4 +91,19 @@ public boolean onOptionsItemSelected(MenuItem item) {
return false;
}

private void initImageLoaderConfig(){
File cacheDir = StorageUtils.getOwnCacheDirectory(getApplicationContext(), "MoviePigeon/cache/poster");
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(this)
.threadPoolSize(5)
.memoryCache(new LruMemoryCache(2 * 1024 * 1024))
.memoryCacheSize(5 * 1024 * 1024)
.tasksProcessingOrder(QueueProcessingType.LIFO)
.diskCacheSize(50 * 1024 * 1024)
.diskCacheFileCount(200)
.diskCache(new UnlimitedDiskCache(cacheDir))
.writeDebugLogs()
.build();
ImageLoader.getInstance().init(config);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ public class MeFragment extends Fragment {
private View view;
private Toolbar tbMe;
private UserInfoSingleton userInfoBulk = UserInfoSingleton.getInstance();
private LoadingDialog loadingDialog;
private GlobalReceiver globalReceiver;
private final int changeUsername = 0;

Expand All @@ -50,6 +51,7 @@ public MeFragment() {
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
userInfoBulk.reset();
loadingDialog = new LoadingDialog(this.getActivity(),R.style.LoadingDialog);
view = inflater.inflate(R.layout.fragment_me, container, false);
bindViews(view);
myRatingsRow.setOnClickListener(new View.OnClickListener() {
Expand Down Expand Up @@ -172,11 +174,13 @@ protected Integer doInBackground(String... params) {
@Override
protected void onPreExecute() {
Log.i(TAG, "New search request is initialised");
loadingDialog.show();
return;
}

@Override
protected void onPostExecute(Integer status) {
loadingDialog.dismiss();
Intent displayActivityIntent = new Intent(getActivity(), DisplayActivity.class);
Bundle arguments = new Bundle();
switch (status) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,14 +44,7 @@ public class MovieListFragment extends Fragment implements AdapterView.OnItemCli
private ArrayList<Movie> movies;
private ListView list_movies;
private MovieListAdapter movieListAdapter;
private RequestHttpBuilderSingleton searchRequestHttpBuilder;
private Gson gson = new Gson();
public View footerView;
public boolean isLoading = false;
public boolean noMoreResult = false;
private ArrayList<Movie> searchMovieList;
private MovieWithCount movieListWithCount;
private int resultCount;
private Toolbar toolbar;
private Bundle bundle;
private String type;
Expand Down
Loading

0 comments on commit f99e22e

Please sign in to comment.