Skip to content

Commit bb9a8f3

Browse files
committed
yay, bump it
1 parent 9583783 commit bb9a8f3

15 files changed

+277
-116
lines changed

.idea/assetWizardSettings.xml

+4-4
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

documentscanner/src/main/AndroidManifest.xml

+10-4
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,18 @@
1010
<uses-feature android:name="android.hardware.camera" />
1111

1212
<application android:supportsRtl="true">
13-
<activity android:name=".activity.UploadActivity"></activity>
14-
<activity android:name=".activity.EditingActivity" />
15-
<activity android:name=".activity.CaptureActivity" />
13+
<activity
14+
android:name=".activity.UploadActivity"
15+
android:screenOrientation="portrait"
16+
></activity>
17+
<activity android:name=".activity.EditingActivity"
18+
android:screenOrientation="portrait"/>
19+
<activity android:name=".activity.CaptureActivity"
20+
android:screenOrientation="portrait"/>
1621
<activity
1722
android:name=".activity.ScanActivity"
18-
android:theme="@style/Theme.AppCompat.Light.NoActionBar" />
23+
android:theme="@style/Theme.AppCompat.Light.NoActionBar"
24+
android:screenOrientation="portrait"/>
1925
</application>
2026

2127
</manifest>

documentscanner/src/main/java/com/haotran/documentscanner/activity/CaptureActivity.java

+8
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import android.view.WindowManager;
2121
import android.widget.ImageView;
2222
import android.widget.LinearLayout;
23+
import android.widget.Toast;
2324

2425
import com.haotran.documentscanner.R;
2526
import com.haotran.documentscanner.constants.ScanConstants;
@@ -69,6 +70,13 @@ public void onClick(View v) {
6970
}
7071
});
7172

73+
findViewById(R.id.grid).setOnClickListener(new View.OnClickListener() {
74+
@Override
75+
public void onClick(View v) {
76+
Toast.makeText(CaptureActivity.this, "Coming soon.", Toast.LENGTH_SHORT).show();
77+
}
78+
});
79+
7280
}
7381
void startScan() {
7482
Intent intent = new Intent(this, ScanActivity.class);

documentscanner/src/main/java/com/haotran/documentscanner/activity/EditingActivity.java

+51-1
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,12 @@
1010
import android.support.v7.app.AppCompatActivity;
1111
import android.os.Bundle;
1212
import android.support.v7.widget.AppCompatTextView;
13+
import android.util.Log;
14+
import android.view.DragEvent;
1315
import android.view.View;
1416
import android.widget.LinearLayout;
1517
import android.widget.TextView;
18+
import android.widget.Toast;
1619

1720
import com.haotran.documentscanner.R;
1821
import com.haotran.documentscanner.constants.ScanConstants;
@@ -58,6 +61,32 @@ public void onClick(View v) {
5861
finish();
5962
}
6063
});
64+
65+
findViewById(R.id.viewNotice).setOnClickListener(new View.OnClickListener() {
66+
@Override
67+
public void onClick(View v) {
68+
Toast.makeText(EditingActivity.this, "Coming soon.", Toast.LENGTH_SHORT).show();
69+
}
70+
});
71+
findViewById(R.id.crop).setOnClickListener(new View.OnClickListener() {
72+
@Override
73+
public void onClick(View v) {
74+
Toast.makeText(EditingActivity.this, "Coming soon.", Toast.LENGTH_SHORT).show();
75+
}
76+
});
77+
findViewById(R.id.rotate).setOnClickListener(new View.OnClickListener() {
78+
@Override
79+
public void onClick(View v) {
80+
Toast.makeText(EditingActivity.this, "Coming soon.", Toast.LENGTH_SHORT).show();
81+
}
82+
});
83+
findViewById(R.id.delete).setOnClickListener(new View.OnClickListener() {
84+
@Override
85+
public void onClick(View v) {
86+
Toast.makeText(EditingActivity.this, "Coming soon.", Toast.LENGTH_SHORT).show();
87+
}
88+
});
89+
6190
}
6291

6392
private void setupViewPager(ViewPager viewPager, String groupName) {
@@ -88,13 +117,34 @@ public boolean accept(File pathname) {
88117
for (int i = 0; i < filesUploaded.length; i++) {
89118
this.adapter.addFragment(new EditingFragment(), filesUploaded[i].getName(), length, ScanConstants.UPLOADED_IMAGE_DIR);
90119
}
91-
((TextView)findViewById(R.id.page)).setText(files.length + "");
120+
121+
// int size = getArguments().getInt("SIZE");
122+
((TextView)findViewById(R.id.page)).setText(1 + "/" + length);
92123
// this.adapter.addFragment(new EditingFragment(), "1"); // add position 1
93124
// this.adapter.addFragment(new EditingFragment(), "2");
94125
// this.adapter.addFragment(new EditingFragment(), "3");
95126
// this.adapter.addFragment(new CaptureResultFragment(), "Grid");
96127
// this.adapter.addFragment(new CaptureResultFragment(), "By Day");
97128
viewPager.setAdapter(this.adapter);
129+
130+
131+
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
132+
@Override
133+
public void onPageScrolled(int i, float v, int i1) {
134+
// Log.d(">>>", "" + i + " " + v + " " + i1);
135+
}
136+
137+
@Override
138+
public void onPageSelected(int i) {
139+
Log.d(">>>", "onPageSelected: " + i);
140+
((TextView)findViewById(R.id.page)).setText( (i+1) + "/" + length);
141+
}
142+
143+
@Override
144+
public void onPageScrollStateChanged(int i) {
145+
146+
}
147+
});
98148
}
99149

100150
private static class Adapter extends FragmentPagerAdapter {

documentscanner/src/main/java/com/haotran/documentscanner/activity/UploadActivity.java

+7
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,13 @@ protected void onCreate(Bundle savedInstanceState) {
6565
startReviewActivity();
6666
});
6767

68+
findViewById(R.id.addNotice).setOnClickListener(new View.OnClickListener() {
69+
@Override
70+
public void onClick(View v) {
71+
Toast.makeText(UploadActivity.this, "Coming soon.", Toast.LENGTH_SHORT).show();
72+
}
73+
});
74+
6875
findViewById(R.id.addDebtor).setOnClickListener(v -> {
6976
// show pop-up for choosing debtor...
7077
// Toast.makeText(UploadActivity.this, "popup...", Toast.LENGTH_SHORT).show();

documentscanner/src/main/java/com/haotran/documentscanner/activity/adapters/BaseCaptureAdapter.java

+9-5
Original file line numberDiff line numberDiff line change
@@ -49,14 +49,18 @@ static class SubheaderHolder extends RecyclerView.ViewHolder {
4949
static class CaptureViewHolder extends RecyclerView.ViewHolder {
5050

5151
TextView textCaptureTitle;
52-
TextView textCaptureGenre;
53-
TextView textCaptureYear;
52+
TextView textCaptureTime;
53+
TextView location;
54+
TextView timestamp;
55+
TextView page;
5456

5557
CaptureViewHolder(View itemView) {
5658
super(itemView);
57-
this.textCaptureTitle = (TextView) itemView.findViewById(R.id.movieTitle);
58-
this.textCaptureGenre = (TextView) itemView.findViewById(R.id.movieGenre);
59-
this.textCaptureYear = (TextView) itemView.findViewById(R.id.movieYear);
59+
this.textCaptureTitle = (TextView) itemView.findViewById(R.id.captureTitle);
60+
this.textCaptureTime = (TextView) itemView.findViewById(R.id.timestamp);
61+
this.location = (TextView) itemView.findViewById(R.id.localtion);
62+
this.timestamp = (TextView) itemView.findViewById(R.id.timestamp);
63+
this.page = (TextView) itemView.findViewById(R.id.page);
6064
}
6165
}
6266

documentscanner/src/main/java/com/haotran/documentscanner/activity/adapters/CaptureAdapterByDay.java

+56-7
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,25 @@
11
package com.haotran.documentscanner.activity.adapters;
22

33
import android.content.Context;
4+
import android.support.v4.content.ContextCompat;
5+
import android.util.Log;
46

7+
import com.haotran.documentscanner.R;
8+
import com.haotran.documentscanner.constants.ScanConstants;
59
import com.haotran.documentscanner.model.Capture;
10+
import com.haotran.documentscanner.util.ScanUtils;
611

12+
import java.io.File;
13+
import java.io.FileFilter;
14+
import java.text.DateFormat;
15+
import java.text.SimpleDateFormat;
716
import java.util.List;
817

918
public class CaptureAdapterByDay extends BaseCaptureAdapter {
10-
11-
public CaptureAdapterByDay(List<Capture> itemList) {
19+
Context context;
20+
public CaptureAdapterByDay(Context context, List<Capture> itemList) {
1221
super(itemList);
22+
this.context = context;
1323
}
1424

1525
@Override
@@ -26,13 +36,52 @@ public boolean onPlaceSubheaderBetweenItems(int position) {
2636

2737
@Override
2838
public void onBindItemViewHolder(final CaptureViewHolder holder, final int position) {
29-
final Capture movie = captureList.get(position);
39+
final Capture capture = captureList.get(position);
40+
41+
holder.textCaptureTitle.setText(capture.getTitle());
42+
43+
44+
// Convert title to correct time.
45+
46+
holder.timestamp.setText( convetTime(capture.getTitle()));
47+
holder.location.setText(capture.isUploaded() ? "Uploaded" : "Local Storage");
48+
if (capture.isUploaded()) {
49+
holder.location.setTextColor(ContextCompat.getColor(context, R.color.colorPrimaryDark));
50+
} else {
51+
52+
}
53+
holder.page.setText(getPageSize(capture) + " page");
54+
55+
holder.itemView.setOnClickListener(v -> onItemClickListener.onItemClicked(capture));
56+
}
57+
58+
private int getPageSize(Capture capture) {
59+
String title = capture.getTitle();
60+
File dir;
61+
if (capture.isUploaded()) {
62+
dir = ScanUtils.getBaseDirectoryFromPathString(ScanConstants.UPLOADED_IMAGE_DIR, context);
63+
} else {
64+
dir = ScanUtils.getBaseDirectoryFromPathString(ScanConstants.RAW_IMAGE_DIR, context);
65+
}
66+
67+
File[] files = dir.listFiles(new FileFilter() {
68+
@Override
69+
public boolean accept(File pathname) {
70+
return pathname.getName().split("_")[0].equals(title);
71+
}
72+
});
73+
return files.length;
74+
}
3075

31-
holder.textCaptureTitle.setText(movie.getTitle());
32-
// holder.textCaptureGenre.setText(movie.getGenre());
33-
// holder.textCaptureYear.setText(String.valueOf(movie.getYear()));
76+
private String convetTime(String title) {
77+
Log.d(">>>", title);
3478

35-
holder.itemView.setOnClickListener(v -> onItemClickListener.onItemClicked(movie));
79+
// String time = "Aug 23, 2018 | 17:30";
80+
String time = "This is time...";
81+
DateFormat f = new SimpleDateFormat("MMM dd, yyyy | HH:mm");
82+
// System.out.println();
83+
time = f.format(Long.valueOf(title));
84+
return time;
3685
}
3786

3887
@Override

documentscanner/src/main/java/com/haotran/documentscanner/fragments/CaptureResultFragment.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ void showFiles() {
135135
} catch (Exception e) {
136136
}
137137

138-
Capture movie = new Capture(name, day, false);
138+
Capture movie = new Capture(name, day, true);
139139
if (mMovieListUploaded.contains(movie)) {
140140
continue;
141141
}
@@ -179,21 +179,21 @@ private void setAdapterByDay() {
179179
this.movieComparator = (o1, o2) -> o1.getTitle().compareTo(o2.getTitle());
180180
Collections.sort(mMovieList, Collections.reverseOrder(movieComparator));
181181
// Collections.sort(mMovieList, movieComparator);
182-
mSectionedRecyclerAdapter = new CaptureAdapterByDay(mMovieList);
182+
mSectionedRecyclerAdapter = new CaptureAdapterByDay(getActivity(), mMovieList);
183183
}
184184

185185
private void setAdapterByDayStorage() {
186186
this.movieComparator = (o1, o2) -> o1.getTitle().compareTo(o2.getTitle());
187187
Collections.sort(mMovieListStorage, Collections.reverseOrder(movieComparator));
188188
// Collections.sort(mMovieList, movieComparator);
189-
mSectionedRecyclerAdapter = new CaptureAdapterByDay(mMovieListStorage);
189+
mSectionedRecyclerAdapter = new CaptureAdapterByDay(getActivity(), mMovieListStorage);
190190
}
191191

192192
private void setAdapterByDayUploaded() {
193193
this.movieComparator = (o1, o2) -> o1.getTitle().compareTo(o2.getTitle());
194194
Collections.sort(mMovieListUploaded, Collections.reverseOrder(movieComparator));
195195
// Collections.sort(mMovieList, movieComparator);
196-
mSectionedRecyclerAdapter = new CaptureAdapterByDay(mMovieListUploaded);
196+
mSectionedRecyclerAdapter = new CaptureAdapterByDay(getActivity(), mMovieListUploaded);
197197
}
198198

199199
// private void setAdapterByName() {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<vector xmlns:android="http://schemas.android.com/apk/res/android"
2+
android:width="18dp"
3+
android:height="18dp"
4+
android:viewportWidth="18"
5+
android:viewportHeight="18">
6+
<path
7+
android:pathData="M1.5625,0.5625L6.3125,0.5625C6.8648,0.5625 7.3125,1.0102 7.3125,1.5625L7.3125,6.3125C7.3125,6.8648 6.8648,7.3125 6.3125,7.3125L1.5625,7.3125C1.0102,7.3125 0.5625,6.8648 0.5625,6.3125L0.5625,1.5625C0.5625,1.0102 1.0102,0.5625 1.5625,0.5625ZM11.6875,0.5625L16.4375,0.5625C16.9898,0.5625 17.4375,1.0102 17.4375,1.5625L17.4375,6.3125C17.4375,6.8648 16.9898,7.3125 16.4375,7.3125L11.6875,7.3125C11.1352,7.3125 10.6875,6.8648 10.6875,6.3125L10.6875,1.5625C10.6875,1.0102 11.1352,0.5625 11.6875,0.5625ZM1.5625,10.6875L6.3125,10.6875C6.8648,10.6875 7.3125,11.1352 7.3125,11.6875L7.3125,16.4375C7.3125,16.9898 6.8648,17.4375 6.3125,17.4375L1.5625,17.4375C1.0102,17.4375 0.5625,16.9898 0.5625,16.4375L0.5625,11.6875C0.5625,11.1352 1.0102,10.6875 1.5625,10.6875ZM11.6875,10.6875L16.4375,10.6875C16.9898,10.6875 17.4375,11.1352 17.4375,11.6875L17.4375,16.4375C17.4375,16.9898 16.9898,17.4375 16.4375,17.4375L11.6875,17.4375C11.1352,17.4375 10.6875,16.9898 10.6875,16.4375L10.6875,11.6875C10.6875,11.1352 11.1352,10.6875 11.6875,10.6875Z"
8+
android:strokeLineJoin="round"
9+
android:strokeWidth="1"
10+
android:fillColor="#CDCDCD"
11+
android:strokeColor="#CDCDCD"
12+
android:fillType="evenOdd"
13+
android:strokeLineCap="round"/>
14+
</vector>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<vector xmlns:android="http://schemas.android.com/apk/res/android"
2+
android:width="18dp"
3+
android:height="18dp"
4+
android:viewportWidth="18"
5+
android:viewportHeight="18">
6+
<path
7+
android:pathData="M1,0L17,0C17.5523,-0 18,0.4477 18,1L18,3C18,3.5523 17.5523,4 17,4L1,4C0.4477,4 0,3.5523 0,3L0,1C-0,0.4477 0.4477,0 1,0ZM1,7L17,7C17.5523,7 18,7.4477 18,8L18,10C18,10.5523 17.5523,11 17,11L1,11C0.4477,11 0,10.5523 0,10L0,8C-0,7.4477 0.4477,7 1,7ZM1,14L17,14C17.5523,14 18,14.4477 18,15L18,17C18,17.5523 17.5523,18 17,18L1,18C0.4477,18 0,17.5523 0,17L0,15C-0,14.4477 0.4477,14 1,14Z"
8+
android:strokeWidth="1"
9+
android:fillColor="#82FF27"
10+
android:fillType="evenOdd"
11+
android:strokeColor="#00000000"/>
12+
</vector>

documentscanner/src/main/res/layout/activity_capture.xml

+25-3
Original file line numberDiff line numberDiff line change
@@ -43,25 +43,47 @@
4343
app:layout_constraintTop_toTopOf="parent" />
4444
</android.support.constraint.ConstraintLayout>
4545
</LinearLayout>
46+
4647
<android.support.design.widget.TabLayout
4748
android:id="@+id/tabLayout"
4849
android:layout_width="match_parent"
4950
android:layout_height="wrap_content"
5051

5152
app:layout_constraintTop_toBottomOf="@+id/toolbar"
5253
app:layout_constraintEnd_toEndOf="parent"
53-
app:layout_constraintBottom_toTopOf="@+id/viewPager"
54+
app:layout_constraintBottom_toTopOf="@+id/grid"
5455
app:tabTextColor="@color/white"
5556
app:layout_constraintStart_toStartOf="parent" />
5657

58+
<!--zzzz-->
59+
<ImageView
60+
android:id="@+id/list"
61+
android:layout_width="18dp"
62+
android:layout_height="18dp"
63+
android:layout_marginTop="8dp"
64+
android:layout_marginEnd="8dp"
65+
android:src="@drawable/ic_row_unactive"
66+
app:layout_constraintBottom_toTopOf="@+id/viewPager"
67+
app:layout_constraintEnd_toStartOf="@+id/grid"
68+
app:layout_constraintTop_toBottomOf="@+id/tabLayout" />
69+
<ImageView
70+
android:id="@+id/grid"
71+
android:layout_width="18dp"
72+
android:layout_height="18dp"
73+
android:layout_marginTop="8dp"
74+
android:layout_marginEnd="8dp"
75+
android:src="@drawable/ic_grid_unactive"
76+
app:layout_constraintBottom_toTopOf="@+id/viewPager"
77+
app:layout_constraintEnd_toEndOf="parent"
78+
app:layout_constraintTop_toBottomOf="@+id/tabLayout" />
79+
5780
<android.support.v4.view.ViewPager
5881
android:id="@+id/viewPager"
5982
android:layout_width="match_parent"
6083
android:layout_height="0dp"
61-
android:layout_marginBottom="8dp"
6284
app:layout_behavior="@string/appbar_scrolling_view_behavior"
6385
app:layout_constraintBottom_toBottomOf="parent"
64-
app:layout_constraintTop_toBottomOf="@+id/tabLayout" />
86+
app:layout_constraintTop_toBottomOf="@+id/grid" />
6587

6688
<ImageView
6789
android:id="@+id/fab"

0 commit comments

Comments
 (0)