Hi Guys
Don’t miss your favourite TV programs, let MyEpisodes viewer show you when it’s on.
MyEpisodes Viewer is an easy to use viewer that extends www.myepisodes.com website to your mobile phone.
All the viewer requires is your MyEpisodes username and password to fetch the listings you have already configured on the MyEpisodes site,
The viewer also allows you to update listed episodes to watched status with one click.
Caveats
1.) Due to MyEpisodes not having a standard API, the Viewer uses a API Helper site (api.madmouse.co.uk) to handle the data.
2.) MyEpisodes has the right to change permissions and there site without notice, which could cause the application to stop working.
3.) To allow api.madmouse.co.uk to enable advanced caching some information that identifies the device will be transmitted to the site
a. These details are hashed and erased 20 minutes after last call to the site.
b. No data is record to disk.
c. No data will be passed onto 3rd Party vendors.
Have Fun
I will put this into the Market place, when teh development team sort out a few issues that prevent me from uploading the application.
Such as?? If I may inquire.
Hi flcl
I have to admit when I am wrong, please ignore or learn from the unjustified comment, as it turned out to be a flaw in the build process.
If developers have the following problem in the future , here's how to solve it.
After building/signing an application, when you publish it get this message
"The new apk's versionCode (x) in AndroidManifest.xml must be higher
than the old apk's versionCode (x)."
If you have set the android:versionCode to a higher number than x, it means your application manifest file has not been updated correctly.
These are the steps I took to correct the problem.
Make sure you have increased the android:versionCode.
close all applications that don't need to be built in the Eclipse editor.
Delete the APK if it already exists (Optional)
Run Project -> clean , select your application hit ok
Rebuild - Export unsigned Package/sign then publish
I have now published the applicaton in the marketplace.
Related
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Presents
Mobile Application Testing
This will be a Full Tutorial on Mobile Application Testing.
I will be updating this thread as I get time. SO NO ETA's.
Click to expand...
Click to collapse
If anybody wants to use / copy this tutorial to their Website or Blog please feel free to contact me at my personal email id: [email protected]
or at our official Website: www.rhbroms.com
Click to expand...
Click to collapse
Please Click on Thanks button if this tutorial by me had helped you for some extent !!!
Click to expand...
Click to collapse
Manual Testing
Contents:
1. What is Mobile Application Testing?
2. Difference Between Mobile Testing and Mobile Application Testing.
3. Mobile Application Extensions and Small intro about Android Platform.
4. How to Test a Mobile Application?
Automation Testing
Click on the below Topics to Lean Automation Testing..
It will take only 2-3 days to learn If you are good at Java
Contents:
1. Robotium for Android Application Testing.
2. Monkeyrunner for Android Application Testing.
Credits,
My Parents - For the best support.
@Swaroop Bandagadde - For the best support.
Renas Reda(Founder of Robotium Test Automation Tool) - For liking my tutorial and for the best support. :good:
jutikorn (My friend) - For the best support.
Mobile Application Testing
1. What is Mobile Application Testing?
It is somewhat similar to software testing but the testing will be performed on a mobile device instead of performing on a system.
Types of Mobile application Testing are:
1. Installation testing.
2. Functional Testing.
3. Memory Leakage Testing.
4. Interrupt Testing.
5. Usability testing.
6. Certification Testing.
7. Performance Testing.
8. Integration Testing.
9. System Testing.
10. Accessibility Testing.
11. Adhoc(Monkey) Testing.
The all above points will be discussed on "How to Test Mobile application?" Chapter.
2. Difference Between Mobile Testing and Mobile Application Testing.
Mobile Testing
- Mobile Testing is testing of Mobile Handsets or Devices.
- Here we mainly concentrate on Native applications(Blot wares).
- Testing all the core like SMS, Voice calls, Connectivity(Bluetooth), Battery(Charging), Signal receiving, Network are working correctly.
- Testing is conducted on both hardware and software.
Mobile Application Testing
- Mobile Application Testing is the testing of mobile applications which we are making as third party for the targeted mobile handset.
- Some core feature of the mobile are tested just to see that your application has not created any side effects on the device functionality.
Mobile Application Extensions and Small intro about Android Platform
3. Mobile Application Extensions and Small intro about Android Platform.
Below are some Mobile Platforms given with respective File Extensions
1. Android - .apk (Android application package file)
2. Iphone - .ipa (iOS application archive file)
3. Symbian - .sis (Software Installation Script)
4. J2ME - .jad and .jar (Java Application Descriptor and Java ARchive)
5. RIM - .alx and .cod
6. Windows Mobile - .cab
7. Bada - .jad and .jar (Java Application Descriptor and Java ARchive)
Android Platform
Testing Purpose we should have to know about the android architecture as well as about Android Versions. Details On this discussed below:
Architecture of Android:
Android operating system is a stack of software components which is roughly divided into five sections and four main layers as shown below in the architecture diagram:
Linux kernel
At the bottom of the layers is Linux - Linux 2.6 with approximately 115 patches. This provides basic system functionality like process management, memory management, device management like camera, keypad, display etc. Also, the kernel handles all the things that Linux is really good at such as networking and a vast array of device drivers, which take the pain out of interfacing to peripheral hardware.
Libraries
On top of Linux kernel there is a set of libraries including open-source Web browser engine WebKit, well known library libc, SQLite database which is a useful repository for storage and sharing of application data, libraries to play and record audio and video, SSL libraries responsible for Internet security etc.
Android Runtime
This is the third section of the architecture and available on the second layer from the bottom. This section provides a key component called Dalvik Virtual Machine which is a kind of Java Virtual Machine specially designed and optimized for Android.
The Dalvik VM makes use of Linux core features like memory management and multi-threading, which is intrinsic in the Java language. The Dalvik VM enables every Android application to run in its own process, with its own instance of the Dalvik virtual machine.
The Android runtime also provides a set of core libraries which enable Android application developers to write Android applications using standard Java programming language.
Application Framework
The Application Framework layer provides many higher-level services to applications in the form of Java classes. Application developers are allowed to make use of these services in their applications.
Applications
You will find all the Android application at the top layer. You will write your application to be installed on this layer only. Examples of such applications are Contacts Books, Browser, Games etc.
Android Application Activity Lifecycle
The life cycle of an activity with main methods as shown below:
onCreate() This is the first callback and called when the activity is first created.
onStart() This callback is called when the activity becomes visible to the user.
onResume() This is called when the user starts interacting with the application.
onPause() The paused activity does not receive user input and cannot execute any code and called when the current activity is being paused and the previous activity is being resumed.
onStop() This callback is called when the activity is no longer visible.
onDestroy() This callback is called before the activity is destroyed by the system.
onRestart() This callback is called when the activity restarts after stopping it.
If you know this much it is enough to Go ahead with Mobile application testing in Android platform.
How to Test a Mobile Application?
4. How to Test a Mobile Application?
1. Installation testing:
To Verify application can be installed successfully.
Different ways of Installing an application to Android Device:
1(a). OTA(Over The Air) : We can install our application by using android play store app on the mobile or else by browsing into Google playstore website. This can be done using WiFi as well as by using GPRS connection.
1(b). Sideloading From Your PC : To do this we need ADB(Android Debug Bridge). This is a very simplest way to install any 3rd party app to your device, most of the time we test engineers prefer this way only.
Just download and Install Android SDK to your system and follow the below steps:
1. Download the application (APK) file to a folder of your choice on your computer.
2. Connect the phone to the computer through the USB port.
3. Enable installation of non-market applications on your phone:
a. On your phone, open the Applications menu (i.e., the tab in the bottom center of the
phone’s home screen) and click on the Settings application, then select Applications
from the Settings menu.
b. Make sure that the first selection, Unknown Sources, is checked so that you can install
an APK file from a location other than the Android Market. A warning message about
the phone being vulnerable to attack will be displayed. Select OK to continue if you
trust the APK file you are about to download. You can change this setting back after the
current installation is complete.
4. Turn on “USB debugging” on your phone: open the Applications menu and select Development,
then enable USB debugging.
5. Open a command/terminal window:
• On Windows, select Start > Run> then type ‘cmd’.
• On Mac OS X, open the Applications folder, select Utilities, then Terminal.
• On Linux, select Applications > Accessories > Terminal.
6. In the command/terminal window, enter the following command:
Code:
adb install <APK_FILE_PATH><APK_FILE>
2. Functional Testing:
Testing the functionality of the application with respect to given requirements of the application.
2(a). Application LOGO Test: Testing the logo of the application to check whether the app which is under test have used the proper logo as per the requirement specification or not.
2(b). Application Splash Screen Test: To verify that when user selects application logo in application manager splash is displayed.
Note that Splash do not remain for more than 3 seconds.
2(c). Application Background Image Test: To test whether the application under test is using the proper Background image as per given requirement specification or not.
2(d). Font style / size / color: Testing the Font size/style/color as per requirement specification.
2(e). Layout: Testing the layouts with respect to given requirement specification.
2(f). Back Key: Verify that back key should navigate the user to previous screen or should close the application with proper exit popup dialog(Again it depends on Requirement specification).
2(g). Application Start/Restart:
i. Find the application icon and select it
ii. Observe the application launch In the timeline defined.
iii. Application must not take more than 25s to start
2(h). Exit Application: Verify that user is able to exit from application with every form of exit modes like Flip, Slider, End Key or Exit option in application and from any point.
3. Memory Leakage Testing
Memory leakage happens when a computer program or application is unable to manage the memory it is allocated resulting in poor performance of the application and the overall slowdown of the system. As mobile devices have significant constraints of available memory, memory leakage testing is crucial for the proper functioning of an application.
4. Interrupt Testing
An application while functioning may face several interruptions like incoming calls or network coverage outage and recovery. The different types of interruptions are:
Incoming and Outgoing SMS and MMS.
Incoming and Outgoing calls.
Incoming Notifications.
Battery Removal.
Cable Insertion and Removal for data transfer.
Network outage and recovery.
Media Player on/off.
Device Power cycle.
An application should be able to handle these interruptions by going into a suspended state and resuming afterwards.
5. Usability testing
Checking the user-friendliness of the application is known as Usability testing.
We have to verify if the application is achieving its goals and getting a favorable response from users. The application should have to give the results in very few steps or in few clicks.
The best example for this is: If you are booking a movie ticket by using some application, user should get the ticket booked in a very short amount of time / only by using 3-4 activities maximum!!
6. Certification Testing
Use this command : (Jarsigner is in your Java bin folder goto java->jdk->bin path in cmd prompt)
Code:
$ jarsigner -verify -verbose -certs my_application.apk
If you see "CN=Android Debug", this means the .apk was signed with the debug key generated by the Android SDK (means it is unsigned), else u will find something for CN. for more details http://developer.android.com/guide/publishing/app-signing.html
How do developer signs their apps:
He/She creates a keystore file by using the below cmd:
Code:
$ keytool -genkey -v -keystore my-release-key.keystore
-alias alias_name -keyalg RSA -keysize 2048 -validity 10000
To show you how it works I have given a screen shot of creating one below:
After generating key we have to follow the following steps:
Right click on project > Android Tools > Export Signed Application Package
The Export Android Application wizard appears.
Select the project I want to export, click Next.
The Keystore Selection screen appears.
Select the keystore and enter the password.
After this just give the path of the .apk file that has to be released.
7. Performance Testing
This testing process is undertaken to check the performance and behavior of the application under certain conditions such as low battery, bad network coverage, low available memory, simultaneous access to application’s server by several users and other conditions. Performance of an application can be affected from two sides: application’s server side and client’s side. Performance testing is carried out to check both.
This is done by performance test engineers. They use specific tools for this, for example: LoadRunner, Apache JMeter etc...
8. Integration Testing
Testing the data flow between two modules(activities) is called to be as Integration Testing.
This is done after finishing of Functional Testing.
The reason why we do Integration Testing is to make sure that all the activities are connected together properly or not.
9. System Testing
It is a end to end testing of the application where in Testing Environment is similar to production.
Here we test the data flow from the beginning to the end, If something is broken we have to report it as a bug.
We perform system testing after finishing of Integration Testing.
We perform system testing to make sure that end to end scenarios of the application is working properly or not.
10. Accessibility Testing
Accessibility testing is a subset of usability testing where the users under consideration have disabilities that affect how they use the application. The end goal, in both usability and accessibility, is to discover how easily people can use application and feed that information back into improving future designs and implementations.
This testing is done after completion of system testing.
11. Adhoc Testing(Monkey Testing)
Testing the application in a random way is called to be as Adhoc or Monkey Testing.
Monkey Testing is done after completion of full software testing and reporting of all the bugs is done. And also when the product is almost stable.
The reason why we perform this testing is,
To some how brake the product.
To find more number of bugs.
To make the software more stable.
to be continued...
It's very massive info, which you have shared with us.
I just want to know what's the meaning of Defect Detailed Report ?
I have developed a document scanning app and published it to Play Store. It started with the basic document scanning features and then I added more down the road along with enhancements and fixations.
Now I feel I have reached a stable phase with my app. I would rarely come across bugs and the next phase would include features that will take a lot of coding. I have been_ and still am_ surveying my existing users but would also like to hear from you too about it.
Here are my next features to develop. Would like you guys help me prioritize them:
a. Fax a scanned document
b. Print a scanned document
c. Sign a scanned document
d. Add a routine for local backup/restore
e. Import multiple images from gallery
f. Chrome App (to edit scanned documents from Google Drive)
g. Voice commands to perform actions
Also, if you think I may include other features.
Current app features include:
1. Scanning optimized camera
2. Image enhancement functions
3. Mutli-level filing system
4. OCR, search and sharing functions
5. List, grid and starred view
6. 8 cropping guides
7. Sync to Google Drive and Dropbox
8. Convert scans to PDF and export PDFs to the SD card of mobile device.
If you would like to test the app in action or watch a vid, find it on Play Store: Smart Document Scanner
If you want an automated version of the survey, you can find it on app website.
Please indicate you're fellow XDAians in the final 'other' field.
Cheers,
Hi, i am currently developing a back-end for my android app in PHP and i need somewhere to test it and deploy it. Is there somewhere i can test my back-end for free? I am willing to rewrite it in a other language if necessary. I have looked at app engine, AWS and azure but i do not have a credit card of my own.
Any suggestions?
Running and testing API backends locally
To test the backend, you'll use the API Explorer, which is a tool that lets you test APIs interactively without using a client app. This tool is automatically run for you when you navigate to your backend API's subdirectory /_ah/api/explorer as we'll describe in the instructions below.
for more information plz follow this link -> https://cloud.google.com/appengine/docs/java/endpoints/test_deploy
damponting44 said:
Running and testing API backends locally
To test the backend, you'll use the API Explorer, which is a tool that lets you test APIs interactively without using a client app. This tool is automatically run for you when you navigate to your backend API's subdirectory /_ah/api/explorer as we'll describe in the instructions below.
for more information plz follow this link -> https://cloud.google.com/appengine/docs/java/endpoints/test_deploy
Click to expand...
Click to collapse
Thank you! Do i need to be enrolled with app engine to use it?
Adding an App Engine Java Servlet Modulec -
This page shows you how to add an App Engine Java Servlet module to your project in Android Studio.
To add the module:
Start Android Studio and open the project for the Android app that needs the new backend.
If you have not installed Android Studio or set up your environment yet, see the Quickstart for details.
Right-click on your project and select New > Module.
Select Google Cloud Module from the list and then click Next.
Select App Engine Java Servlet Module, and then supply the remaining information in the New Google Cloud Module form:
Enter module parameters
Supply a module name for your backend; this name will be displayed and used in your Android Studio project.
Supply a package name. This package name will be used for all classes imported from this template.
Select the client module (containing your Android app) in this project. This module will be automatically set up to have the right compile and build dependencies to be able to call your newly generated backend.
Click Finish to generate the new backend.
Select Tools > Android > Sync Project with Gradle Files to sync the project.
scottyaim said:
Hi, i am currently developing a back-end for my android app in PHP and i need somewhere to test it and deploy it. Is there somewhere i can test my back-end for free? I am willing to rewrite it in a other language if necessary. I have looked at app engine, AWS and azure but i do not have a credit card of my own.
Any suggestions?
Click to expand...
Click to collapse
Hello, I have recently added a few features for Webhook Relay com project (google it, don't want to post link) such as bidirectional tunnels for exactly this reason - test your application backend without deploying. You can just spin up a java/php/python/go/whatever server on your laptop and use relay agent to expose it to the internet. I hope it helps.
so basically i want to monitor system wide app installation and uninstallation, including sideloading with dates? if possible to have it create a log and store it in a specific folder that is locked or can't be accessed or deleted without code. and to do a daily or weekly check to see if any changes were made.
also is there a task to block all installations including sideloading?
any help would be appreciated.
@ktmom
So tracking installed and uninstalled apps is straightforward.
I'm not aware of a way to lock the resulting file per se. Encrypt it, probably. But to prevent any other app from accessing it, I don't know how to do that. It could be uploaded to the cloud, e.g. Google drive. Then the local copy deleted. That's kinda fussy. Saving it as a variable array is doable, then Tasker can be locked.
If on every install / uninstall, the log is updated, why does there need to be a daily/weekly check?
I would have to test and see if the package manager can be "locked".
Is the device in question rooted?
This kinda sounds like something I might do to my kids phone [emoji6]. If this is actually the case, the file could be sent to your device or email on update. It wouldn't matter if the local copy was edited. You also could know immediately if an app had changed.
I asked in the other thread, do you have any familiarity with tasker?
@ktmom
device is non rooted,
file sent to email would be fine if that will get rid of daily/weekly checks. (<--- this was just something I wanted that maybe i'll just use in notepad++ to highlight the differences for a quick way of seeing changes.)
i have dabbled in tasker many years ago, only to enable/disable wifi and turn on vpn in geo fenced locations.
I haven't forgotten you. I should post a solution by the weekend. I'm just spending some time to make sure the kinks are out. You will need the MailTask plugin. I personally use a script in termux (requires cURL) to send via Google servers, but that is harder to setup, particularly with OATH. The plugin makes life much easier.
ktmom said:
I haven't forgotten you. I should post a solution by the weekend. I'm just spending some time to make sure the kinks are out. You will need the MailTask plugin. I personally use a script in termux (requires cURL) to send via Google servers, but that is harder to setup, particularly with OATH. The plugin makes life much easier.
Click to expand...
Click to collapse
ok great, thank you!
@BobMcGeez
Finally, I think I have this stable and able to handle multiple consecutive app installations and removals. I am working under the assumption that the use for this project is to monitor possible dangerous activity on a child’s device. I do not condone the use of this for monitoring a device without adult consent.
This project will send an email notification when a new app is installed or an existing app is removed. The email will include a CSV file with the remaining still installed apps. It should ignore apps that are being updated (they remove then install). The emails are sent silently and there should not be any indication to the user this is happening in the background. The CSV file is saved in the {storage}/Tasker/tasks/ directory. Each time an email is sent, the stored file is also updated. One instance of the previous file is saved as well.
First, you need MailTask installed. Please ensure that the MailTask plugin is fully configured and tested before installing this project. We are using OAuth Gmail authentication, so ignore SMTP stuffs.
Also, IMHO, I would use a GMail account maybe even created for this purpose, but at least one not setup to routinely access by the device user. This way, the user’s account will not reflect the sent messages.
To configure and test MailTask
Open MailTask from the app drawer on your device
Perform “Authorize Gmail Access” Use the account for the “from” you want to use in this project
Perform “Grant access to primary storage”
If your device has an SDcard, perform “Grant access to Sd card”
Now if you want, you can create a task in your Tasker installation to test the MailTask plugin
Create a test task
Add a MailTask action (Plugin -> MailTask -. send email)
Configuration:
From = Account used to Authorize Gmail Access above
To = Account where to send email
Subject = Testing MailTask
Body = Some text to take up space
Attachments = choose a basic file using the paperclip icon just for there to be an attachment
Test plugin by manually running the task.
If all is good, you can delete this test
Now install the project (taskernet link). On install, accept enabling the profiles. If you do, then the Installation task should run automatically. If you prefer not to, or if you need to re-run the installation, manually run the “Initial Setup” task.
This project may be shared under GNU v2. You may share, modify and use it provide you don't charge, the code is open and credit is provided.
Edit 1-8-23: I've updated the Mantano apk file. Seems there were still some issues with the aspect ratio of the default.png (book cover) image. Fixed now at 1.5!
I keep my NSTG on FW 1.2.1 because there are issues with Tasker and plugins on FW 1.2.2. The resulting apps are OK, but development is a problem unless I do it on FW 1.2.1. So that one device has B&N apps removed. AlReader has been my go-to reader app. Until now.
While working on some thorny issues with a Tasker app update I came across a book I wanted to read. Unfortunately it was only available in PDF format and AlReader can't handle that. I soon found that something like EBookDroid really couldn't deal well with a PDF file that begged for text reflow (problematic as that is). I wanted something that was at least as good as the stock reader. I could have just picked up one of my other NSTs and read the book that way, but when you abandon the B&N system you should at least break even, not lose. So I went searching through the forum for some ideas.
Mantano Reader caught my interest. Not only can it reflow PDF text (pretty much like the stock reader-don't get too excited), it can also display PDFs as a continuous scroll, with zoom. It can handle Adobe DRM books! And the TTS works (not a big deal). So I looked around and started with version 2.2.12 from Apkpure. This is the last version for Android 2.1. I found that full-screen reading was broken in this version and I couldn't see why, so I worked my way back until it wasn't broken. That was version 2.2.3.
Not for everyone
Those are some of Mantano's virtues, but it's not for everyone. I think it's chief drawback is the absence of full font support. There is only the default (admittedly not bad) and although there is provision for user fonts, there are issues. More on that later. Then there is the really tiny user interface. The colors render somewhat muddy on the NST also. Those are really tough issues to address, certainly beyond my pay grade. Also, none of the syncing, cloud, downloading of dictionaries, OPDS books, fulfilling of .acsm files, additional fonts, user manuals, etc., works. Can't be fixed. I looked. Finally, the reader options are pretty simple, about what is available for the stock reader (except for fonts). So if you like the hundreds of setting combinations in something like AlReader or FB Reader, this app is not for you. If you want something straightforward so you can just read a book without all the B&N hoopla, Mantano may be worth a look.
Mods
When I started getting serious about this I decided to try to learn by doing. My goal was to remove (or at least hide/disable) stuff that did not work. Almost all of my modifications were in the resources folder of the apk file. There was also one annoying issue with the aspect ratio of book covers that required a minor change in two smali files (thanks to @Renate). Here's a short list:
1. Removed Bookstore (OPDS) tab on home screen (formerly "My Catalogs" as described in User Guide)
2. Removed menu icons for sync and cloud
3. Disabled sections in Settings that don't work (Login, Sync, Dictionary download, Fonts, User Manual download)
4. Corrected font colors in some local dialogs so text is visible
5. Made the page number black, smaller, and with a transparent background for less visual distraction
Also, there were a few dialogs with invisible text that used the system framework to generate the window. The only way to fix this was to make a few very minor changes in framework-res.apk. This worked well and even helped with a few other apps that formerly had invisible text. A win-win. You can update your framework-res.apk using the CWM zip provided below. Despite its filename, it is not an "update" zip. You'll just be installing a zip file with CWM.
Making do
Overdrive Library epubs: No app will be able to fulfill .acsm files on the NST/G. The SSL is just not up to it. So there's no point in registering the device with Adobe. That just wastes one of your allowed devices and so I disabled that first Settings selection. However, the app can read Adobe DRM books, understands due-dates, etc. You just need to introduce your device to ADE running on your PC (ver. 3.0 works well for me on Windows) and transfer fulfilled books from there, just as you would with the stock reader.
Fonts: You can, in theory, supply your own TrueType fonts and place them in /sdcard/Mantano/fonts. When a book is opened, the lower menu options include "Themes". This odd term is for adjusting the appearance of the book (fonts, margins, justification, line spacing, colors). You can make a new theme or edit the default one. Either way, you will get to select a font. You will see the font you added in the folder (you can copy any font you like from /system/fonts or from anywhere else). The problem is that Mantano has no way to deal with font families. For example, I prefer Malabar. Of course, there is the base font, the bold instance, italic, bold italic. Mantano makes you choose one of these. Clearly you choose the base font (no need to copy over the others). If there are italics or bold type in a book, the reader uses the default font. This would not be such an issue for small sections of emphasized text, but the font scales are not the same. Malabar is larger than the default font. So any italics is obviously smaller. I tried a software package for scaling the font but it just turned it into rubbish. I am learning to like the default font. This issue was fixed in version 2.4.6, based on what I've read. But that won't run on the NST, of course.
Dictionaries: The reader has the ability to go out to find definitions on the WWW. Big pain. Although you can't download any dictionaries from within the app, Mantano does play nicely with ColorDict and there are plenty of dictionary options for that. Easy fix.
User Guide: I poked around and found a guide labeled "Version 2.1". That was the best I could do. It seems pretty close, although what was the "Bookstore" tab in this version (which I have removed) is referred to as "My Catalogs" in the manual. Either way, it's non-functional and gone. The same goes for references to cloud, accounts and sync. None of it works and all of it has either been removed from view or disabled in this mod.
Extras
Unlike AlReader and FB Reader, Mantano's main activity is the library view. That means there is no simple way to use the "reading now" status bar button to go directly to your current book.
I also like to be able to use the current book cover as a screensaver. AlReader and CoolReader both have this capability. Mantano does not, but it does create thumbnails for each book (if you let it) and one of those is screensaver size (default.png). For some unknown reason, all the thumbnails of various sizes for display in the library have the correct aspect ratio except for default.png. I fixed this in the app with a view to using it as a screensaver image.
To address these issues, I have used Tasker to create two small apps. Mantano_Extras1 enables a listener for when the reader is closed (either by two presses of the back button or simply by pressing the "n" button). When that happens, the Mantano database is queried for the last reading point/book. This is stored in a variable. Accessing Mantano_Extras1 after setup sends a command to open that file. If Mantano is your default app for epubs and/or pdfs, the book will open automatically to the right place without passing through the library. Thus assigning Mantano_Extras1 to the "reading now" button with NookTouch ModManager restores the function of that button.
Mantano_Extras2 does everything described above. During setup it also creates the folder /media/screensavers/CurrentBookCover. When the reader is exited and the database information stored in a variable, it copies the default.png for the current book to that folder. If you select that folder in your NST Settings app for the screensaver, the current cover will be displayed during sleep.
I should add that both apps check to see if the current book has changed before they do anything. If there is no change, they simply stop.
As these are Tasker-generated apps (but don't require Tasker to run), they have a dependency on two small library files. If you don't have one of my other Tasker apps already, you need to copy the two files in the zip as below:
/system/etc/permissions/com.google.android.maps.xml
/system/framework/com.google.android.maps.jar
Set permissions for both files to rw-r--r-- and reboot. Without these files resident, the app will not install.
The apps also use sqlite3 and busybox. If you rooted with NookManager you already have busybox. A few other special packages probably include it. If you have it, you will find it in /system/xbin. If it's not there, copy the file from the zip to that location and set permissions to rwx-rwx-rwx.
If you don't already have sqlite3, move the file from the zip to /system/bin and set the permissions to rwx r-x r-x.
When you have prepared the way, reboot and then install whichever of the two "Extras" apps you want. When you first tap on the app icon there will be a pause while things are set up and then a request for root access. Once that's done they are good to go. Use NTMM to assign the app to the "reading now" status bar button and set your screensaver directory to "CurrentBookCover" (if you installed Mantano_Extras2).
This is nice work. I have heard good thing about Mantano reader before. I believe it still exists although under new name I think. Its sad that you had to remove app options to make it work on NST. Still I am glad that you make some improvement that could if exploited properly make this device better than before. I believe that solving invisible text message is best of what you did and if understood properly can make number of apps that had this problem before usable again for this device. I would not dismiss even TTS working as I remember that someone tried to implement that on NST before yet I do not remember it was solved. So if it work out of box with Mantano reader it might be prudent to see what makes it work if it is fine TTS not some hardly intelligible sound generator. This options you removed how did you confirmed that they are not working? For cloud I believe it was NST lockout and now enforced TLS1.2 it can not reach that gives you hard time. Yet for syncing it is little harder to understand. For the rest like OPDS and such I guess my knowledge is not sufficient to guess how that even work so if you know more than me I am more than ready to listen.
SJT75 said:
I believe it still exists although under new name I think.
Click to expand...
Click to collapse
Now Bookari.
SJT75 said:
Its sad that you had to remove app options to make it work on NST.
Click to expand...
Click to collapse
I didn't so much remove options to make it work. It worked as-is, but not the login/download components, and they are not necessary for the reading functions.
SJT75 said:
I believe that solving invisible text message is best of what you did and if understood properly can make number of apps that had this problem before usable again for this device
Click to expand...
Click to collapse
It's possible. I noticed improvement in dialog boxes for ES File Explorer. But there are other types of dialog boxes and I only dealt with what was needed for this app. Spillover is a gift.
SJT75 said:
I would not dismiss even TTS working as I remember that someone tried to implement that on NST before yet I do not remember it was solved. So if it work out of box with Mantano reader it might be prudent to see what makes it work if it is fine TTS not some hardly intelligible sound generator.
Click to expand...
Click to collapse
Well, that could have been me. Pico TTS (if not removed) always worked on the NST if you downloaded some voices. I have a post about this somewhere with links. But the quality is really wretched. I looked at this further awhile back and found that Google TTS began with Android 2.2 (of course). There is a "bridge" system involving a custom settings app but each application must include this custom code to work. I did a MOD for AlReader to enable this, but it's not easy and would be (nearly) impossible for Mantano as very few of the smali files have descriptive names. Most are just "a.smali, b.smali", etc. So it's really difficult to track down what you want.
SJT75 said:
This options you removed how did you confirmed that they are not working? For cloud I believe it was NST lockout and now enforced TLS1.2 it can not reach that gives you hard time. Yet for syncing it is little harder to understand. For the rest like OPDS and such I guess my knowledge is not sufficient to guess how that even work so if you know more than me I am more than ready to listen.
Click to expand...
Click to collapse
It's not all SSL. Or it may be that also. The URLs in the apk file don't go anywhere, even on my PC browser. So far I've gotten up to version 4.5 and still no working URLs. Perhaps when Bookari emerged as the name the old URLs were abandoned and the old Mantano apps became crippled in this way.
Thanks nmyshkin you clarified some things. I agree that change to new platform and abandoning the URL domain for cloud use could be cause for that option not functioning anymore. Yet unless the syncing have not be performed through a same route (login account on the same domain) sync should function fine from one device to another for example. About the rest you are correct I have come to a same conclusion that even slight upgrade of Android on this device would make vast improvement in options available to exploit. Sadly B&N did not go that way. I will look upon PicoTTS to see if something about the way it actually work can be understood to evaluate if it is worth the effort or it maybe can be discarded as irrelevant for this device.
Just crossed my mind... nmyshkin did you tried to hunt down inside apk file exact spot where that URL is written/coded and change it to something else like IP address of your computer/drive/*/*/sync folder ?
SJT75 said:
Just crossed my mind... nmyshkin did you tried to hunt down inside apk file exact spot where that URL is written/coded and change it to something else like IP address of your computer/drive/*/*/sync folder ?
Click to expand...
Click to collapse
No, it didn't occur to me. I only read on one device so that's not the kind of thing that interests me. Also, I just transfer books over from my PC to the Nook when I get them, usually via FTP.
I did see cloud, sync, etc., URLs but I suspect that just changing them would not produce the capability you seem to be hinting at. It's likely a lot more complicated than that. It seems to me that syncing implies active communications from both ends. Teaching your PC to respond to the overtures of the Nook would be a whole other rats nest.
You are correct. Using URLs to connect to PC is not safe. Therefore some home workgroup network or SFTP access are more reasonable way. Maybe if you change cloud sink URL to Dropbox folder you get something?
SJT75 said:
You are correct. Using URLs to connect to PC is not safe. Therefore some home workgroup network or SFTP access are more reasonable way. Maybe if you change cloud sink URL to Dropbox folder you get something?
Click to expand...
Click to collapse
I don't think so. The app innards were designed for negotiating with certain remote servers and expect a certain dialog. Just changing the URL doesn't address these issues. Using Dropbox as an example, there are login credentials to be supplied and other issues to be addressed before files can be freely moved in either direction.
Well yes unless dropbox folder is public shared one what I wrote will not work. What if you link sync/cloud to internal folders on device inside Dropbox application that also initiate script written to execute Dropbox synchronization? Then login credentials would come from Dropbox app I think.
SJT75 said:
Well yes unless dropbox folder is public shared one what I wrote will not work. What if you link sync/cloud to internal folders on device inside Dropbox application that also initiate script written to execute Dropbox synchronization? Then login credentials would come from Dropbox app I think.
Click to expand...
Click to collapse
1. I am not a Java programmer. What you are suggesting is going to require significant changes in the app. It's not in the same league as the modifications I made.
2. I have no interest in the feature. People who must have synchronization with myriad other devices would be better served by selecting an app that currently has this feature working (like FB Reader).
3. If someone who is a Java programmer and is interested in this feature wants to take a crack at it, more power to them. I personally think it's a dead end. Just about the time you get it figured out, Dropbox will no longer work on the NST. Any modification that relies on exchange with an external commercial server has a built-in self-destruct timer, just waiting for tightening external server access rules. It's over for Android 2.1.
nmyshkin said:
Just about the time you get it figured out, Dropbox will no longer work on the NST. Any modification that relies on exchange with an external commercial server has a built-in self-destruct timer, just waiting for tightening external server access rules. It's over for Android 2.1.
Click to expand...
Click to collapse
Amen to that. Making NST more cooperative with Calibre is much better option anyway. Commercial server could be also a trap. There was an outcry when Remarkable for example started charging access to their services out of blue and without warning.