diff --git a/Kiwix-iOS/Controller/ControllerRetainer.swift b/Kiwix-iOS/Controller/ControllerRetainer.swift index 303fc07d..c3ad9662 100644 --- a/Kiwix-iOS/Controller/ControllerRetainer.swift +++ b/Kiwix-iOS/Controller/ControllerRetainer.swift @@ -12,6 +12,18 @@ class ControllerRetainer { static let shared = ControllerRetainer() private init() {} + // MARK: - Search + + var searchStore: SearchController? + var search: SearchController { + let controller = searchStore ?? UIStoryboard.search.instantiateInitialViewController() as? SearchController + searchStore = controller + return controller! + } + + + // MARK: - Library + private var libraryStore: UIViewController? private func releaseLibrary() {libraryStore = nil} @@ -24,12 +36,11 @@ class ControllerRetainer { func didDismissLibrary() { if #available(iOS 10, *) { NSTimer.scheduledTimerWithTimeInterval(120.0, repeats: false, block: { (timer) in - print("set nil") self.libraryStore = nil }) } else { NSTimer.scheduledTimerWithTimeInterval(120.0, target: self, selector: Selector("releaseLibrary"), userInfo: nil, repeats: false) } } - + } diff --git a/Kiwix-iOS/Controller/Main/MainController.swift b/Kiwix-iOS/Controller/Main/MainController.swift index 94ce8ba7..486fa586 100644 --- a/Kiwix-iOS/Controller/Main/MainController.swift +++ b/Kiwix-iOS/Controller/Main/MainController.swift @@ -23,7 +23,6 @@ class MainController: UIViewController { var bookmarkController: BookmarkController? var bookmarkNav: UIViewController? var settingController: UIViewController? - var searchController: SearchController? var welcomeController: UIViewController? let searchBar = SearchBar() @@ -86,7 +85,6 @@ class MainController: UIViewController { bookmarkController = nil bookmarkNav = nil settingController = nil - searchController = nil welcomeController = nil } diff --git a/Kiwix-iOS/Controller/Main/MainControllerDelegates.swift b/Kiwix-iOS/Controller/Main/MainControllerDelegates.swift index 4bd8734f..d6274b12 100644 --- a/Kiwix-iOS/Controller/Main/MainControllerDelegates.swift +++ b/Kiwix-iOS/Controller/Main/MainControllerDelegates.swift @@ -79,11 +79,11 @@ extension MainController: LPTBarButtonItemDelegate, TableOfContentsDelegate, Zim } func searchBar(searchBar: UISearchBar, textDidChange searchText: String) { - searchController?.startSearch(searchText, delayed: true) + ControllerRetainer.shared.search.startSearch(searchText, delayed: true) } func searchBarSearchButtonClicked(searchBar: UISearchBar) { - searchController?.searchResultTBVC?.selectFirstResultIfPossible() + ControllerRetainer.shared.search.searchResultTBVC?.selectFirstResultIfPossible() } // MARK: - UIPopoverPresentationControllerDelegate diff --git a/Kiwix-iOS/Controller/Main/MainControllerShowHide.swift b/Kiwix-iOS/Controller/Main/MainControllerShowHide.swift index b28a6319..e1f816ac 100644 --- a/Kiwix-iOS/Controller/Main/MainControllerShowHide.swift +++ b/Kiwix-iOS/Controller/Main/MainControllerShowHide.swift @@ -51,36 +51,34 @@ extension MainController { } private func showSearchResultController(animated animated: Bool) { - guard let searchController = searchController ?? UIStoryboard.search.instantiateInitialViewController() as? SearchController else {return} - self.searchController = searchController - guard !childViewControllers.contains(searchController) else {return} - addChildViewController(searchController) - searchController.view.translatesAutoresizingMaskIntoConstraints = false - view.addSubview(searchController.view) + let controller = ControllerRetainer.shared.search + guard !childViewControllers.contains(controller) else {return} + addChildViewController(controller) + controller.view.translatesAutoresizingMaskIntoConstraints = false + view.addSubview(controller.view) - let views = ["SearchController": searchController.view] + let views = ["SearchController": controller.view] view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("H:|[SearchController]|", options: .AlignAllCenterY, metrics: nil, views: views)) view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("V:|[SearchController]|", options: .AlignAllCenterX, metrics: nil, views: views)) if animated { - searchController.view.alpha = 0.5 - searchController.view.transform = CGAffineTransformMakeScale(0.94, 0.94) + controller.view.alpha = 0.5 + controller.view.transform = CGAffineTransformMakeScale(0.94, 0.94) UIView.animateWithDuration(0.15, delay: 0.0, options: .CurveEaseOut, animations: { () -> Void in - searchController.view.alpha = 1.0 - searchController.view.transform = CGAffineTransformIdentity - }) { (completed) -> Void in - searchController.didMoveToParentViewController(self) - } + controller.view.alpha = 1.0 + controller.view.transform = CGAffineTransformIdentity + }, completion: nil) } else { - searchController.view.alpha = 1.0 - searchController.view.transform = CGAffineTransformIdentity - searchController.didMoveToParentViewController(self) + controller.view.alpha = 1.0 + controller.view.transform = CGAffineTransformIdentity } + controller.didMoveToParentViewController(self) } private func hideSearchResultController(animated animated: Bool) { guard let searchController = childViewControllers.flatMap({$0 as? SearchController}).first else {return} let completion = { (complete: Bool) -> Void in + guard complete else {return} searchController.view.removeFromSuperview() searchController.removeFromParentViewController() guard self.traitCollection.horizontalSizeClass == .Compact else {return} @@ -195,4 +193,4 @@ extension MainController { GlobalOperationQueue.sharedInstance.addOperation(operation) Preference.hasShowGetStartedAlert = true } -} \ No newline at end of file +} diff --git a/Kiwix-iOS/Info.plist b/Kiwix-iOS/Info.plist index 1d311050..b7f52eb7 100644 --- a/Kiwix-iOS/Info.plist +++ b/Kiwix-iOS/Info.plist @@ -49,7 +49,7 @@ CFBundleVersion - 1.7.1666 + 1.7.1675 ITSAppUsesNonExemptEncryption LSRequiresIPhoneOS diff --git a/Kiwix-iOS/Storyboard/Search.storyboard b/Kiwix-iOS/Storyboard/Search.storyboard index 27fad504..6742b0cf 100644 --- a/Kiwix-iOS/Storyboard/Search.storyboard +++ b/Kiwix-iOS/Storyboard/Search.storyboard @@ -2,7 +2,6 @@ - @@ -23,8 +22,7 @@ - - + @@ -44,8 +42,7 @@ - - + @@ -252,113 +249,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -369,17 +260,17 @@ - + - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -597,17 +450,17 @@ - + - + - + @@ -658,10 +511,10 @@ - + - + @@ -762,129 +615,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -894,7 +624,7 @@ - + @@ -907,7 +637,7 @@ - + @@ -953,8 +683,5 @@ - - - diff --git a/Kiwix-iOSWidgets/Bookmarks/Info.plist b/Kiwix-iOSWidgets/Bookmarks/Info.plist index 5957841a..053e9bad 100644 --- a/Kiwix-iOSWidgets/Bookmarks/Info.plist +++ b/Kiwix-iOSWidgets/Bookmarks/Info.plist @@ -21,7 +21,7 @@ CFBundleSignature ???? CFBundleVersion - 1.7.2122 + 1.7.2136 NSExtension NSExtensionMainStoryboard diff --git a/Kiwix/libkiwix/build/build-xz.sh b/Kiwix/libkiwix/build/build-xz.sh index b690c890..957e2511 100755 --- a/Kiwix/libkiwix/build/build-xz.sh +++ b/Kiwix/libkiwix/build/build-xz.sh @@ -1,15 +1,15 @@ #!/bin/bash ROOT=$(pwd) -XZ_FOLDER_NAME='xz-5.2.2' +# XZ_FOLDER_NAME='xz-5.2.2' ########################## XZ ########################## -curl -O 'http://tukaani.org/xz/xz-5.2.2.tar.gz' -tar -xvzf xz-5.2.2.tar.gz +# curl -O 'http://tukaani.org/xz/xz-5.2.2.tar.gz' +# tar -xvzf xz-5.2.2.tar.gz -XZPATH=$ROOT/$XZ_FOLDER_NAME -cd $XZPATH +# XZPATH=$ROOT/$XZ_FOLDER_NAME +# cd $XZPATH -./autogen.sh +# ./autogen.sh build_iOS() { @@ -22,15 +22,24 @@ build_iOS() SDKROOT="$(xcodebuild -version -sdk iphoneos | grep -E '^Path' | sed 's/Path: //')" fi - export CC="$(xcrun -sdk iphoneos -find clang)" + export MACOSX_DEPLOYMENT_TARGET="10.4" + + export CC="$(xcrun -find clang)" export CFLAGS="-fembed-bitcode -isysroot $SDKROOT -arch ${ARCH} -miphoneos-version-min=9.0" + + export CPP="$CC -E" + export CPPFLAGS="$CFLAGS" + + export CXX="$(xcrun -find clang++)" + export CXXFLAGS="$CFLAGS -stdlib=libc++ -std=c++11" + export LDFLAGS="-arch ${ARCH} -isysroot $SDKROOT" if [ $ARCH == "i386" ] || [ $ARCH == "x86_64" ]; then - ./configure --prefix=$XZPATH/build/iOS/$ARCH --host=i686-apple-darwin11 --disable-static --enable-shared + ./configure --prefix=$(pwd)/build/iOS/$ARCH --host=i686-apple-darwin11 --enable-static --enable-shared else - ./configure --prefix=$XZPATH/build/iOS/$ARCH --host=arm-apple-darwin --disable-static --enable-shared + ./configure --prefix=$(pwd)/build/iOS/$ARCH --host=arm-apple-darwin --enable-static --enable-shared fi make && make install && make clean @@ -51,6 +60,28 @@ build_OSX() make && make install && make clean } +distribute_iOS() { + iOSBUILDDir=$(pwd)/build/iOS + cd $iOSBUILDDir + mkdir -p universal/lib + + cd armv7/lib + for file in *.a + do + cd $iOSBUILDDir + lipo -create armv7/lib/$file armv7s/lib/$file arm64/lib/$file x86_64/lib/$file i386/lib/$file -output universal/lib/$file + done + + cd armv7/lib + for file in *.dylib + do + cd $iOSBUILDDir + lipo -create armv7/lib/$file armv7s/lib/$file arm64/lib/$file x86_64/lib/$file i386/lib/$file -output universal/lib/$file + done + + cp -r armv7/include universal +} + distribute() { cd $XZPATH/build @@ -93,9 +124,10 @@ build_iOS x86_64 build_iOS armv7 build_iOS armv7s build_iOS arm64 +# distribute_iOS -build_OSX i386 -build_OSX x86_64 +# build_OSX i386 +# build_OSX x86_64 -distribute +# distribute diff --git a/Kiwix/libkiwix/build/installname.sh b/Kiwix/libkiwix/build/installname.sh index cf5049df..dcc60ed1 100755 --- a/Kiwix/libkiwix/build/installname.sh +++ b/Kiwix/libkiwix/build/installname.sh @@ -9,6 +9,6 @@ do do install_name_tool -change $dependency @rpath/$dependency $file done - install_name_tool -change /usr/lib/liblzma.5.dylib @rpath/liblzma.5.dylib $file + install_name_tool -change /Volumes/Data/Developer/build/xz-5.2.2/build/iOS/x86_64/lib/liblzma.5.dylib @rpath/liblzma.5.dylib liblzma.5.dylib otool -L $file done \ No newline at end of file